java字符串

1、字符串的不变性:

  • String对象创建后则不能被修改,是不可变的,所谓的修改是创建了新对象,所指向的内存空间不同。
  • 一旦一个字符串在内存中创建,则这个字符串将不可以改变如果需要一个可以改变的字符串,则可以使用StringBuffer和StringBuilder。
  • 每次new一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用“==”比较时也为false,如果比较内容是否相同,则应该使用“equals()”方法。
    “==”和“equals()”区别:
    ==:判断字符串在内存中首地址是否相同,即判断是否同一个字符串对象。
    equals():比较存储在两个字符串对象中的内容是否一致。
    PS:字节是计算机存储信息的基本单位,1个字节等于8位,gbk编码中1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节。

2、String类常用方法:

int length() //返回当前字符串的长度
int indexOf(int ch) //查找ch字符在该字符串中第一次出现的位置
int indexOf(String str) //查找str子字符串在该字符串中第一次出现的位置
int lastIndexOf(int ch) //查找字符ch在该字符串中最后一次出现的位置
int lastIndexOf(String str) //查找str子字符串在该字符串中最后一次出现的位置
String substring(int beginIndex)//获取begin位置开始到结束的字符串
String substring(int beginIndex,int endIndex)//获取从begin开始到end位置的子字符串。注意:包括begin位置的字符,不包括end位置的字符。

String trim()//返回去除前后空格的字符串
boolean equals(Object obj)//将该字符串与指定对象比较,返回true或false
String toLowerCase() //将字符串转换为小写
String toUpperCase()//将字符串转换为大写
char charAt(int index)//获取字符串中指定位置的字符
String[] spilt(String regx,int limit)//将字符串分割为子字符串,返回字符数组
String getBytes()//将该字符串转换为bytes数组。

3、StringBuilder类
因为String类具有不可变性,所以使用String类,程序运行时会额外创建一个对象,当频繁操作字符串时,就会额外产生很多临时变量。使用StringBuilder和StringBuffer类可以避免这个问题。
StringBuilder和StringBuffer类不同之处:
StringBuffer线程安全,而StringBuilder没有实现线程安全安全,所以性能略高,因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用StringBuilder类。
当字符串缓冲区去被多个线程使用时,JVM不能保证StringBuilder的操作是安全的,虽然它的速度快。但是可以保证StringBuffer是可以正确操作的。
当在单线程下进行操作时,使用StringBuilder,因为速度快。
StringBuilder类常用方法:

StringBuilder append(arg)//追加内容到当前StringBuilder对象的末尾。
StringBuilder insert(位置,参数)//将内容插入到StringBuilder指定位置。
String toString()//将StringBuilder对象转换为String对象
int length()//获取字符串的长度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值