1 . 常用方法
boolean equalsIgnoreCase(String str)
判断两个字符串中的 内容是否相同 , 忽略大小写
boolean contains(String str)
判断该字符串中 是否 包含 给定的字符串
boolean isEmpty()
判断该字符串的内容 是否为空 的字符串 ""
int length()
获取该字符串的长度
char charAt(int index)
获取该字符串中指定位置上的字符
String substring(int start)
从指定位置开始索引,到末尾结束,截取该字符串,返回新字符串
int indexOf(String str)
获取给定的字符串,在该字符串中第一次出现的位置
byte[] getBytes()
把该字符串转换成 字节数组
char[] toCharArray()
把该字符串转换成 字符数组
String trim()
去除字符串两端空格,中间的不会去除,返回一个新字符串
String toLowerCase()
把该字符串转换成 小写字符串 ,返回一个新字符串
String toUpperCase()
把该字符串转换成 大写字符串,返回一个新字符串
String replace(String old,String new)
在该字符串中, 将给定的旧字符串,用新字符串替换 ,返回一个新字符串
2 . String StringBuffer 和 StringBuilder 的区别
每次对 String 类型进行改变的时候 ,都会生成一个新的 String 对象 ,然后将 指针指向新的 String 对象 。StringBuffer 每次都会对 StringBuffer 对象本 身进行操作 ,而不是生成新的对象并改变对象引用 。相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升 , 但却要冒多线程不安全的风险 。
public StringBuffer append(String str)
在原有字符串缓冲区内容基础上,在末尾追加新数据,不会产生新的字符串
public StringBuffer insert(int offset,String str)
在原有字符串缓冲区内容基础上,在指定位置插入新数据
public StringBuffer deleteCharAt(int index)
在原有字符串缓冲区内容基础上,删除指定位置上的字符
public String substring(int start)
从指定位置开始,到末尾结束,截取该字符串缓冲区,返回新字符串
对于三者使用的总结 :
操作少量的数据: 适用String
单线程操作字符串缓冲区下操作大量数据: 适用StringBuilder
多线程操作字符串缓冲区下操作大量数据: 适用StringBuffer
3 . 补充细节
不要在 foreach 循环里进行元素的 remove/add 操作
可以调用迭代器的 remove 方法而不是集合类的 remove 方法
//正例
List<String> list =new ArrayList<>();
list . add("1");
list . add("2");
Iterator<String> iterator = list . iterator;
while (iterator . hasNext()){
String item = iterator . next();
if(条件){
iterator . remove()
}
}
更多内容资料 公众号:天堂比不过家乡
亲 ,别忘了 赞助关注哦!!!