java的String及StringBuffer和StringBuilder

(一)String类:

Java使用String类来创建和操作字符串;String str="hello World";

注意:String类是不可变的,一旦创建了String对象,他的值就无法改变了;

常用方法:

 (1)int length():返回该字符串的长度;toString(): 返回此对象本身;

 (2)String[] split(String str):根据给定的正则表达式拆分字符串;

 (3)String subString(int beginIndex)|subString(int beginIndex,int endIndex):  返回截取的字符串;

 (4)char[] toCharArray():将字符串转换为一个字符数组;

 (5)String trim():返回字符串的副本,忽略前面的空格和最后的空格;

 (6)char charAt(int index):返回该索引的字符;

  其他方法:

 (1)int  compareTo(Object o)/compareTo(String str) 将字符串和另一个对象/字符串进行比较;

 (2)String concat(String str):将指定字符串连接到该字符串的结尾;

 (3)equals(Object obj ):将字符串内容与指定的对象进行比较;

 (4)byte[]  getBytes() | getBytes(String charsetName):将字符串按照默认|指定编码格式编码为byte序列;

 (5)void getChars(int beginIndex,int endIndex,char[]  C,int cBeginIndex):将字符从字符串复制到目标字符数组;

 (6)hashCode():返回字符串的哈希码;

 (7)int indexOf(int ch) | indexOf(String str) | indexOf(int ch,int beginIndex) | indexOf(String str,int beginIndex)

         int lastIndexOf(int ch) | lastIndexOf(String str) | lastIndexOf(int ch,int beginIndex) | lastIndexOf(String str,int beginIndex)

       返回此字符/字符串{从开始索引起}第一次/最后一次出现的索引;

 (8)String replace (char oldChar,char newChar)| replaceAll(String old,String new) | replaceFirst(String old,String new);

(二) StringBuffer类和StringBuilder类:

和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次修改,并且不产生新的未使用对象;

StringBuilder存在线程安全问题,但是速度比较快

StringBuffer不存在线程安全问题,速度较慢;

多数情况下建议使用StringBuilder,但在线程安全的前提下,需要使用StringBuffer;

StringBuffer常用方法:(还支持很多String类的方法)

    (1)StringBuffer append(String s):在该字符串后面追加字符串;

    (2)StringBuffer reverse():将该字符串反向存储;

    (3)delete(int start,int end):移除索引中间的字符串;

    (4)insert (int offset,int i):将参数i的字符表达形式插入该字符串的指定位置;

    (5)replace(int start,int end,String str):使用指定字符串替代该字符串指定索引位置的字符串;

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
StringStringBufferStringBuilder都是用于处理字符串的类,它们之间的区别如下: 1. 可变性:String 类是不可变的,即一旦创建,它的值无法改变。每次对 String 进行修改时,都会创建一个新的 String 对象。而 StringBufferStringBuilder 类是可变的,可以直接对其进行修改,而不会创建新的对象。因此,在需要频繁修改字符串的情况下,使用 StringBufferStringBuilder 会更高效。 2. 线程安全性:String 类是线程安全的,因为它的不可变性可以保证多个线程同时访问时不会出现竞争条件。而 StringBuffer 是线程安全的,它的方法都使用了 synchronized 关键字进行同步。而 StringBuilder 是非线程安全的,不提供同步操作,适用于单线程环境。 3. 性能:由于 String 是不可变的,每次修改都会创建一个新的对象,这会带来一定的性能开销。而 StringBufferStringBuilder 是可变的,可以直接在原有对象上进行修改,避免了频繁创建对象的开销。在性能要求较高的场景下,使用 StringBufferStringBuilder 会比 String 更合适。 根据具体的需求,选择适合的类来处理字符串。如果字符串不需要修改或线程安全性很重要,则使用 String 类;如果需要频繁修改字符串且线程安全性要求较高,则使用 StringBuffer;如果需要频繁修改字符串且不涉及多线程环境,则使用 StringBuilder

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值