一、String类简介
String类位于Java的lang包下,在使用时不需要通过import引入,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,对象创建后不可修改,由0或多个字符组成,包含在一对双引号之间。
二、String类创建对象
用String类创建对象通常有两种形式:
1、String str = "chengjunyu";
2、String str1 = new String("chengjunyu");
方法1通过字面量直接给字符串进行赋值,在栈中创建字符串str时,会先在字符串常量池中检查是否已有该字符串,如果没有则创建并存入字符串常量池中,如果已存在则直接从常量池中获取。
方法2创建的字符串,不管内存有没有为“chengjunyu”字符串分配内存,都会在内存中重新分配一个内存区域存放“chengjunyu”,然后用str1指向它,相当于内存中有两个“chengjunyu”,只是存放的地址不一样。
三、String类的构造方法
1、public String();
String类的无参构造方法,用来创建空字符串的String类;
案例:String str = new String();
2、public String(String value);
用已知的字符串value值来创建一个字符串对象;
案例:String str1 = new String("aaa");
3、public String(char[] value)
用字符数组value创建一个String对象。
案例:char[] value = {"ab","cd","efg"};
String str1 = new String(value); (等同于new String("abcdefg"));
4、public String(char[] value, int startIndex, int numChars)
用字符数组chars的startIndex开始的numChars个字符创建一个String对象。
案例:char[] value = {"ab","cd","ef","g"};
String str2 = new String(value,1,2); (等同于new string("cdef"));
5、public String(byte[] values)
用byte的数组value值来创建字符串对象。
案例:byte[] values = new byte[]{"a","b","c","d","e"};
String str3 = new String(values); (等同于new String("abcde"))
四、String类的常用方法
1、获取字符串长度:
str.length();
2、获取字符在字符传中出现的位置:
str.indexOf(String str);
从头开始查找str在字符串中第一次出现的位置;
str.indexOf(String str,int fromIndex);
从下标fromIndex处开始开始查找str在字符串中第一次出现的位置;
str.lastIndexOf(String str);
从尾部开始查找str在字符串中最后一次出现的位置;
str.lastIndexOf(String str,int fromIndex);
从下标fromIndex处开始开始查找str在字符串中最后一次出现的位置;
3、获取字符串中某一个位置的字符:
str.charAt(int index);
查找字符串中下标为index位置出现的字符串
4、截取字符串:
str.substring(fromIndex,endIndex);
从fromIndex处开始截取到endIndex处结束,不包含下标为endIndex的字符;
str.substring(fromIndex);
从fromIndex处开始截取到最后;
5、验证字符串开始或结束的字符:
开始位置字符:str.startWith(String str1),返回Boolean值;
结束位置字符:str.endWith(String str1),返回Boolean值;
6、字符串的比较:
int num = str.compareTo(String str1);
对字符串内容按字典顺序进行大小比较,通过返回的整数值指明当前字符串与参数字符串的大小关系。若当前对象比参数大则返回正整数,反之返回负整数,相等返回0。
int num = str.compareToIgnore(String str1);
和compareTo()方法类似,忽略大小写。
boolean b = str.equals(Object obj);
比较当前字符串和参数字符串,在两个字符串相等的时候返回true,否则返回false。
boolean b = str.equalsIgnoreCase(Object obj);
和equals方法类似,忽略大小写。
7、字符串连接:
str2 = str.concat(String str1);
用concat连接两个字符城成为一个新的字符串。
8、字符串中字符的大小写转换:
小写转大写:str.toUpperCase();
大写转小写:str.toLowerCase();
9、字符串中字符的替换:
str.replace(oldStr,newStr);
用新的字符代替就得字符。
10、字符串中清除空格:
str.trim();
清除字符串str两侧的空字符串。
11、字符传中分割字符串为数组:
str.split(String str1);
用str1将字符串str分割成数组。