String 常用方法--------------------------------------------------------------------------------“十八罗汉”
-
equals()-----比较两个字符串的具体内容
Object类中equals()的默认实现是通过==比较的
但是 String类已经重写过了继承自Object中的equals()
重写后,不再按照 == 比较,而是比较两个字符串的具体内容
也就是说,不论创建方式,只要串的内容一致,equals() 就返回 true
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s11));
System.out.println(s2.equals(s3));
-
hashCode()-----根据字符串的具体内容生成哈希码值
String 重写了hashCode(),据字符串的具体内容生成哈希码值 ,而不是根据地址值生成
char[] value = {'a','b','c'};
String s1 = new String(value);
String s2 = "abc";
System.out.println(s1.equals(s2));
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
-
toString()-----打印字符串的具体内容
String 重写了Object中的 toString方法,打印的是字符串的具体内容
char[] value = {'a','b','c'};
String s1 = new String(value);
System.out.println(s1)
-
.length() ------查看当前字符串的长度
System.out.println(s1.length());
-
.toUpperCase()-----将本字符串转为全大写
System.out.println(s1.toUpperCase());
-
.toLowerCase()-----将本字符串转为全小写
System.out.println(s1.toLowerCase());
-
.startsWith()-----判断字符串是不是以指定元素开头
System.out.println(s1.startsWith("a"));
-
.endsWith()-----判断字符串是不是以指定元素结尾
System.out.println(s1.endsWith("a"));
-
.charAt()-----根据下标获取本字符串中对应位置上的元素
System.out.println(s1.charAt(0));
-
.indexOf()-----返回指定字符第一次出现的下标
String s3 = "abcbdbba";
System.out.println(s3.indexOf("b"));
-
.lastIndexOf()-----返回指定字符最后一次出现的下标
System.out.println(s3.lastIndexOf("b"));
-
.concat()-----将指定字符串拼接在本字符串末尾,是临时的,不会改变原字符串内容
System.out.println(s2.concat("cxy"));
System.out.println(s2);
想要永久拼接可以:
String s4=s2.concat("aaa");
System.out.println(s4);
-
.split()-----以指定字符作为分隔符,分割当前字符串
String s5="afbfcfdfe";
String[] a = s5.split("f");
System.out.println(Arrays.toString(a));
for (int i = 0; i <a.length ; i++) {
System.out.println(a[i]);
}
-
.trim()-----去除字符串首尾两端的空格
String s6 = " hh hhh ";
System.out.println(s6.trim());
-
.substring()-----截取子串-----算两个方法
String s7 = "abcdefgh";
System.out.println(s7.substring(3));
System.out.println(s7.substring(3,6));
-
String.valueOf()-----将int类型转为String类型
System.out.println(20+10);
System.out.println("20"+10);
System.out.println(String.valueOf(10));
System.out.println(String.valueOf(80));
System.out.println(String.valueOf(80)+10);
-
.getBytes()-----将指定字符串转换为byte[]
byte[] bs = s7.getBytes();
System.out.println(Arrays.toString(bs));