一、声明
String str;
二、初始化字符串
1、利用char数组进行创建
char[] a = ['a', 'b', 'c', 'd'];
String str = new String(a);
2、提取char数组一部分仅创建
如下,从char数组a中第2个数开始提取2个字符,组成str:
char[] a = ['a', 'b', 'c', 'd'];
String str = new String(a, 1, 2);
3、直接初始化
String str;
str = "abcd";
三、字符串连接
String类字符串连接时使用“+”进行连接,当连接的一方是String类型时,其他被连接的对象无论是不是String类型,都会被强制转换成String类。
四、String内部方法
1、字符串长度
String str = "abcd";
int length = str.length();
2、查找字符
String str = "abcda";
int first_position = str.indexOf("a"); //a首次出现在字符中的位置,此处为0
int last_position = str.lastIndexOf("a"); //a最后一次出现在字符中的位置,此处为4
注:若输入为空字符串,则indexOf()函数返回0,lastIndexOf()函数返回字符长度。
3、提取字符
(1)提取单个字符
String str = "abcd";
char third_word = str.charAt(2); //提取第3位字符,提取类型为char
(2)提取子字符串
String str = "abcd";
String first_two_str = str.subString(0, 2); //包括起始位置字符,不包括终止位置字符
String last_two_str = str.subString(2); //从当前位置一直取至整个字符串末尾
4、字符串替换
String str = "abcd";
String str_new = str.replace("a", "A"); //替换a为A,str_new = "Abcd"
5、字符串开头和结尾的判断
String str = "abcd";
boolean b1 = str.startsWith("a"); //str字符开头是否是a:true
boolean b2 = str.endWith("b"); //str字符结束是否是b:false
6、字符串相等判断
String str1 = "abcd";
String str2 = "abcde";
String str3 = "ABCD";
boolean b1 = (str1 == str2); //地址比较,非字符比较,b1 = false
boolean b2 = (str1.equals(str2)); //字符比较,b2 = false
boolean b3 = (str1.equalsIgnoreCase(str3)); //字符比较,不区分大小写,b3 = true
7、按字典顺序比较字符串
compareTo():比较是基于字符串的Unicode值来进行比较的。如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
String str1 = "abcda";
String str2 = "abcDa";
int k = str1.compareTo(str2); //前三个字符都相同,第四个字符不同,故对比第四个字符的Unicode,D比d大32,故k = 32
8、字母大小写更改
String str = "abcDa";
String str_up = str.toUpperCase(); //输出大写结果:ABCDA
String str_down = str.toLowerCase(); //输出小写结果:ABCDA
9、字符串分割
String str = "192.168.1.1";
String strs1[] = str.split("\\."); //输出为String类数组:"192","168","1","1"
String strs2[] = str.split("\\.", 2); //输出为String类数组:"192","168.1.1"
10、String转换为char数组
String str = "abcd";
char[] char_array = str.toCharArray(); //此时char_array为['a', 'b', 'c', 'd']