回到顶部
您的当前位置: 编程语言> JAVA> JAVA基础> 系列教程
Java基础(二十)字符串
2014-03-25 10:09:24
标签: 网络整理 Java 基础 字符串

String字符串: 

java中用String类进行描述。对字符串进行了对象的封装。这样的好处是可以对字符串这种常见数据进行方便的操作。对象封装后,可以定义N多属性和行为。

一:字符串特点

如何定义字符串对象呢?String s = "abc";只要是双引号引起的数据都是字符串对象。

特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。

例如,

String s1 = "abc"; // s1指向的内存中只有一个对象abc。
String s2 = new String("abc"); // s2指向的内容中有两个对象abc、new 。
  System.out.println(s1==s2);//false
  System.out.println(s1.equals(s2));//true ,字符串中equals比较的是字符串内容是否相同。

二:字符串的方法

<一>:构造方法:

将字节数组或者字符数组转成字符串。

String s1 = new String();//创建了一个空内容的字符串。
String s2 = null;//s2没有任何对象指向,是一个null常量值。
String s3 = "";//s3指向一个具体的字符串对象,只不过这个字符串中没有内容。
//一般在定义字符串时,不用new。
String s4 = new String("abc");
String s5 = "abc"; 一般用此写法
  new String(char[]);//将字符数组转成字符串。
  new String(char[],offset,count);//将字符数组中的一部分转成字符串。

<二>:一般方法:
按照面向对象的思想:
1)获取
① 获取字符串的长度。length();
② 指定位置的字符。char charAt(int index);
③ 获取指定字符的位置。如果不存在返回-1,所以可以通过返回值-1来判断某一个字符不存在的情况。

int indexOf(int ch);//返回第一次找到的字符角标
int indexOf(int ch,int fromIndex); //返回从指定位置开始第一次找到的角标
int indexOf(String str); //返回第一次找到的字符串角标
int indexOf(String str,int fromIndex);
int lastIndexOf(int ch);
int lastIndexOf(int ch,int fromIndex);
int lastIndexOf(String str);
int lastIndexOf(String str,int fromIndex);

④ 获取子串。

String substring(int start);//从start位开始,到length()-1为止.
String substring(int start,int end);//从start开始到end为止。//包含start位,不包含end位。
substring(0,str.length());//获取整串

2) 判断
① 字符串中包含指定的字符串吗?

boolean contains(String substring);

② 字符串是否以指定字符串开头啊?

boolean startsWith(string);

③ 字符串是否以指定字符串结尾啊?

boolean endsWith(string);

④ 判断字符串是否相同

boolean equals(string);//覆盖了Object中的方法,判断字符串内容是否相同。

⑤ 判断字符串内容是否相同,忽略大小写。

lean equalsIgnoreCase(string) ;

3) 转换
① 通过构造函数可以将字符数组或者字节数组转成字符串。
② 可以通过字符串中的静态方法,将字符数组转成字符串。

static String copyValueOf(char[] );
static String copyValueOf(char[],int offset,int count);
static String valueOf(char[]);
static String valueOf(char[],int offset,int count);

③ 将基本数据类型或者对象转成字符串。

static String valueOf(char);
static String valueOf(boolean);
static String valueOf(double);
static String valueOf(float);
static String valueOf(int);
static String valueOf(long);
static String valueOf(Object);

④ 将字符串转成大小写。

String toLowerCase();
String toUpperCase();

⑤ 将字符串转成数组。

char[] toCharArray();//转成字符数组。
byte[] getBytes();//可以加入编码表。转成字节数组。

⑥ 将字符串转成字符串数组。切割方法。

String[] split(分割的规则-字符串);

⑦ 将字符串进行内容替换。注意:修改后变成新字符串,并不是将原字符串直接修改。

String replace(oldChar,newChar);
String replace(oldstring,newstring);

String concat(string); //对字符串进行追加。
String trim();//去除字符串两端的空格
int compareTo();//如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。
三:File类

File类:将文件系统中的文件和文件夹封装成了对象。提供了更多的属性和行为可以对这些文件和文件夹进行操作。这些是流对象办不到的,因为流只操作数据。

File类常见方法:
1)创建

boolean createNewFile();//在指定目录下创建文件,如果该文件已存在,则不创建。而对操作文件的输出流而言,输出流对象已建立,就会创建文件,如果文件已存在,会覆盖。除非续写。
boolean mkdir();//创建此抽象路径名指定的目录。
boolean mkdirs();//创建多级目录。

2)删除

boolean delete();//删除此抽象路径名表示的文件或目录。
void deleteOnExit();//在虚拟机退出时删除。

注意:在删除文件夹时,必须保证这个文件夹中没有任何内容,才可以将该文件夹用delete删除。
window的删除动作,是从里往外删。注意:java删除文件不走回收站。要慎用。
3)获取

long length();//获取文件大小。
String getName();//返回由此抽象路径名表示的文件或目录的名称。
String getPath();//将此抽象路径名转换为一个路径名字符串。
String getAbsolutePath();//返回此抽象路径名的绝对路径名字符串。
String getParent();//返回此抽象路径名父目录的抽象路径名,如果此路径名没有指定父目录,则返回 null.long lastModified();//返回此抽象路径名表示的文件最后一次被修改的时间。

File.pathSeparator:返回当前系统默认的路径分隔符,windows默认为 “;”。
File.Separator:返回当前系统默认的目录分隔符,windows默认为 “\”。
4)判断

boolean exists();//判断文件或者文件夹是否存在。
boolean isDirectory();//测试此抽象路径名表示的文件是否是一个目录。
boolean isFile();//测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden();//测试此抽象路径名指定的文件是否是一个隐藏文件。
boolean isAbsolute();//测试此抽象路径名是否为绝对路径名。

5)重命名

boolean renameTo(File dest);//可以实现移动的效果。剪切+重命名。
String[] list();//列出指定目录下的当前的文件和文件夹的名称。包含隐藏文件。

如果调用list方法的File 对象中封装的是一个文件,那么list方法返回数组为null。

如果封装的对象不存在也会返回null。只有封装的对象存在并且是文件夹时,这个方法才有效。