Java基础之字符串(String)

Java基础之字符串(String)

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<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()
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值