02.Java基础之String-Java第一阶段

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)

从指定位置开始,到末尾结束,截取该字符串缓冲区,返回新字符串

对于三者使用的总结 :

  1. 操作少量的数据: 适用String

  2. 单线程操作字符串缓冲区下操作大量数据: 适用StringBuilder

  3. 多线程操作字符串缓冲区下操作大量数据: 适用StringBuffer

3 . 补充细节

不要在 foreach 循环里进行元素的 remove/add 操作

可以调用迭代器的 remove 方法而不是集合类的 remove 方法

//正例

List list =new ArrayList<>();

list . add("1");

list . add("2");

Iterator iterator = list . iterator;

while (iterator . hasNext()){

String item = iterator . next();

if(条件){

iterator . remove()

}

}

更多内容资料 公众号:天堂比不过家乡
亲 ,别忘了 赞助关注哦!!!

你可能感兴趣的:(02.Java基础之String-Java第一阶段)