String 的常用方法
1、s1.length() 获取字符串的长度
2、s1.charAt() 获取字符串中指定索引的字符
3、s1.isEmpty() 判断字符串是否为空
4、s1.toLowerCase() 将字符串中所有大写字母转换为小写
5、s1.toUpperCase() 将字符串中所有小写字母转换为大写
6、s1.trim() 返回删除字符串中前后空格后新的字符串
7、s1.equals() 判断两个字符串是否相等
8、s1.equalsIgnoreCase() 忽略大小写的情况下判断两个字符串是否相等
9、s1.concat() 做字符串的拼接,相当于 ”+“
10、s1.substring() 从指定索引处开始截取字符串,直到末尾
11、s1.substring(index1, index2) 采用 包含索引1,不包含索引2 形式的截取字符串
12、s1.endsWith() 判断字符串是否以指定的后缀结束
13、s1.startsWith() 判断字符串是否以指定的前缀开始
14、s1.contains() 当且仅当此字符串包含指定的char值序列时,返回true
15、s1.indexOf() 返回指定子字符串在此字符串中第一次出现处的索引,未找到返回 -1
16、s1.lastIndexOf() 返回指定子字符串在此字符串中最右边出现处的索引,未找到返回 -1
17、s1.replace(char oldChar, char newChar) 返回一个经过替换后新的字符串
18、s1.matches(String regex) 判断此字符串是否匹配给定的正则表达式
StringBuffer 与 StringBuilder 的常用方法
1、sb.append() 提供了append()方法,用于进行字符串的拼接
2、sb.delete(int start, int end) 删除指定位置的内容
3、sb.replace(int start, int end, String str) 把 [start, end) 位置替换为 str
4、sb.insert(int offset, str) 在指定位置插入 xxx,插入位置在 offset 前边
5、sb.reverse() 把当前字符序列逆转
String、StringBuffer 与 StringBuilder 之间转换
String str = "Hello";
StringBuffer sbf = new StringBuffer(str); // String 转换成 StringBuffer
StringBuilder sbd = new StringBuilder(str); // String 转换成 StringBuilder
str = sbf.toString(); // StringBuffer 转换成 String
str = sbd.toString(); // StringBuilder 转换成 String
// StringBuffer 转换成 StringBuilder
StringBuilder bufferToBuilder = new StringBuilder(sbf.toString);
// StringBuilder 转换成 StringBuffer
StringBuffer builderToBuffer = new StringBuffer(sbd.toString);
小结
- StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串
- StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串
- StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 没有对方法加锁同步,所以StringBuilder 的性能要远大于 StringBuffer