Java中的字符串String、StringBuffer、StringBuilder

String的底层是一个不可变的数组,每次重新赋值都会重新创建新的对象(用双引号直接创建同样的值除外);安全性高、效率低;不适用于需要频繁改变字符串的场景。

主要使用方法:

split(regex):根据regex的方式或者内容分隔字符串,并返回一个字符串数组。

length():返回字符串的长度。

concat(str):拼接字符串(同+),返回一个新的字符串。

chatAt(index):返回指定索引位置的字符,类型是char。

startsWith(str) /endsWith(str):判断字符串是否以str开始或者结尾,返回布尔型。

toCharArray():将字符串转换成一个char类型数组。

substring(index start[,index end]):截取字符串,左闭右开;只有一个start,那么截取到最后,另外index end不能大于字符串的长度。

trim():取出字符串首尾的空格,返回一个新的字符串。

replace(str,newstr):将字符串中的str换成newstr,并返回一个新的字符串。

 

另外,使用双引号("")创建字符串和new String创建字符串,在创建相同的内容时,前者将对象保存在堆中的字符串常量池中,后者则是直接放到堆中。再次创建时,前者直接引用,而后者还需要重新创建。

StringBuffer的底层是一个可变数组,每次重新赋值或改变值的时候,不需要创建新的对象,可根据实际字符长度重新创建数组,每个方法都有synchronized关键字(同步锁);安全性一般,效率一般;多用于多线程场景。

StringBuilder与StringBuffer定义相同,每个方法没有synchronized关键字,每次少一个缓存数组;安全性低,效率高;是用于单线程场景。方法同StringBuffer。

注意:在创建StringBuffer/StringBuilder对象时,只能用new创建:例如StringBuilder bu01 = new StringBuilder("abcdefg"); StringBuilder bu02 = new StringBuilder();另外不能使用+拼接String。

主要使用方法:

indexOf():返回字符串中第一次/最后一次出现str的索引,没有则返回-1

append(str):在末尾添加指定字符串str。

insert(index,str):在指定字符串位置插入字符串str。

delete(index start,index end):删除指定索引区间的字符。

deleteChaAt(index):删除指定位置的字符。

replace(index start,index end,str):用str替换指定区间的字符串。

toString():将StringBuffer对象转换成String对象的字符串

 String字符串主要是使用方法补充:

indexOf(str)/lastIndexOf(str):返回字符串中第一次/最后一次出现str的索引,没有则返回-1。

contains(str):判断字符串是否包含str,有则返回true置,无则返回false。

toUpperCase()/toLowerCase():将将字符串(字符)转换成大写/小写,返回新的字符串。

equalsIgnoreCase():比较两个字符串时,忽略大小写。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值