寻找第x号元素
str.charAt(x)
比较str和str2是否一样
eg:
String str2 = new String("abcd");
String str3 = new String("abcd");
System.out.println(str2.equals(str3)); //true
System.out.println(str2==str3); //false
String str4 = "qwq";
String str5 = "qwq";
System.out.println(str4.equals(str5)); //true
System.out.println(str4==str5); //true
str2和str3指向不同的地址,str4和str5直接指向常量池
寻找指定字符的下标
str.indexOf('b')
找到返回下标,找不到返回-1
从右往左找:
str.lastIndexOf('b')
替换
eg:
String str = "abcd";
str = str.replace('b','o');
System.out.println(str); //aocd
以某字符切割
eg:
String str6 = "aaa,bb,ccc,dddd";
String[] strArray = str6.split(",");
for(int i=0;i<strArray.length;i++){
System.out.println(strArray[i]);
}
结果:
aaa
bb
ccc
dddd
去除收尾空格
str.trim()
判断以什么开头/结尾
str.startsWith()
str.endsWith()
字母转大小写
str.toLowerCase()
str.toUpperCase()
StringBuilder/StringBuffer
不可变字符序列:String
可变字符序列:StringBuilder(线程不安全,效率高)、StringBuffer(线程安全,效率低)
StringBufferb比StringBuilder多了对象锁
将字符串以数组保存
append():在后面追加字符串/布尔值
StringBuilder sb1 = new StringBuilder("abcd");
sb1.append("efg");
System.out.println(sb1);
结果:abcdefg
调用后通过return this实现方法链
sb1.append("efg").append("231").append("cc");
delete():删除
StringBuilder sb = new StringBuilder("0123456789");
sb.delete(3,5);
System.out.println(sb);
结果:01256789