Java学习——StringBuffer和StringBuilder类

来源:互联网 发布:java中offset什么意思 编辑:程序博客网 时间:2024/06/06 04:13

前言

当对字符串进行修改的时候,我们需要用到StringBuffer和StringBuilder类。和之前的String不一样,StringBuffer和StringBuilder类的对象能够被多次修改,并且不产生新的未使用的对象。

StringBuffer类

StringBuffer类是线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但是通过某些方法可以用于改变该序列的长度和内容。

StringBuffer类可将字符串用于多个线程。可以在必要的时候对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
注意:在大部分情况下是:StringBuilder > StringBuffer

StringBuffer类的常用方法

 /***StringBuffer是一个容器,长度可变,可以直接操作字符串,用toString方法变为字符串 **/ 1.存储     1public StringBuffer append(String sb);//将指定参数数据在容器末尾,返回值也是StringBuffer     例子:     StringBuffer sb = new StringBuffer(//可以加str);     StringBuffer sb1=ab.append(数据) //数据可以任何基本数据类型  注:此时sb == sb1他们是同一对象,意思是可以不用新建sb1直接 sb.append(数据) 使用时之后接使用sb    2)insert();// 插入    sb.insert(index ,数据);
2.删除        sb.delete(start ,end);  //删除startend的字符内容//注意:这里的所有包含index的操作都是含头不含尾的        sb.deleteCharAt(index);//删除指定位置的字符//清空StringBuffer缓冲区        sb=new StringBuffer();        sb.delete(0,sb.length());
3.获取    char c = sb.charAt(index);//获取index上的字符    int i = sb.indexOf(char)://获取char字符出现的第一次位置    //与 String 中的获取方法一致参考前面
4.修改                  String类中无次操作方法    sb =sb.replace(start,end,string)//将从start开始到end的字符串替换为string;    sb.setCharAr(index ,char);//将index位置的字符变为新的char
5.反转     sb.reverse();//将sb倒序
6. getChars(int srcBegin,int srcEnd,char[] ch,int chBegin)//将StringBuffer缓冲区中的指定数据存储到指定数组中

StringBuilder类

StringBuilder类是Java5新增的一个可变的字符序列。这个类提供一个与StringBuffer兼容的API,但是不保证同步。这个被设计作为StringBuffer类的一个简易的替换,用于字符串缓冲区被单个线程使用的时候。建议优先采用该类,因为在大多数实现中,它比 StringBuffer类速度要快。两者的方法基本相同,所以StringBuilder类就不写了,参考上面StringBuffer类的常用方法。

原创粉丝点击