String类的其他功能:
替换功能:
String replace(char old,char new)
String replace(String old,String new)
去除字符串两空格
String trim()
按字典顺序比较两个字符串
int compareTo(String str) 区分大小写
int compareToIgnoreCase(String str) 不区分大小写
public class StringTest3 { public static void main(String[] args) {
String s = "HelloWorld"; // 字符替代:String replace(char old,char new)
String s1 = s.replace('o','k');
System.out.println(s1);//HellkWkrld // 字符串替代:String replace(String old,String new)
String s2 = s.replace("ll", "kk");
System.out.println(s2);//HekkoWorld // 去除字符串两空格
String s4 = " hello world ";
String s5 = s4.trim();
System.out.println("s4:" + s4 + "---");//左右的空格还保留
System.out.println("s5:" + s5 + "---");//左右的空格去除了 //按字典顺序(ASCII码表)比较两个字符串:
// int compareTo(String str)
String a1 = "cat";
String a2 = "dog";
String a3 = "Cat";
String a4 = "door";
String a5 = "cat";
String a6 = "c"; int i1 = a1.compareTo(a2);
System.out.println(i1);
//-1 c在b的前面一位,ASCII码表,a1的c减去a2的b,等于-1 System.out.println(a1.compareTo(a3));//32
//a1的c在ASCII的数值减去a2的C在ASCII的数值。得到32 System.out.println(a2.compareTo(a4));//-8
//a2的前2个字母do和a4前2个一样,a2第三个的g减去a4第三个的o,得到-8 System.out.println(a1.compareTo(a5));//0
//a1和a5的数组元素完全一样 System.out.println(a1.compareTo(a6));//2
//Ctrl+左键点击comperTo看源码
} } compareTo的源码,以及“System.out.println(a1.compareTo(a6));//2”的分析 private final char value[]; 字符串会自动转换为一个字符数组。 public int compareTo(String anotherString) {
// this - a1 - "cat"
// anotherString - a2 - "c" int len1 = value.length;
//this.value.length = a1.toCharArray().length == 3 int len2 = anotherString.value.length;
//anotherString.value.length = a2.toCharArray().length == 1 int lim = Math.min(len1, len2);
// lim = Math.min = 3-1 = 2; lim = 2 char v1[] = value;
// char v1[] = {'c','a','t'}; char v2[] = anotherString.value;
// char v2[] = {'c'}; int k = 0;
while (k < lim) {
char c1 = v1[k]; //c1 = 'c','a','t'
char c2 = v2[k]; //c2 = 'c'
if (c1 != c2) {
return c1 - c2;
}
k++; //当k=1时,k !< lim ,lim = 1; 所以跳出循环
}
return len1 - len2; //跳出循环后,到这里,比较两个数组的长度 3-1 = 2
} String a1 = "cat";
String a6 = "c";
System.out.println(a1.compareTo(a6));//