StringBuilder学习笔记

来源:互联网 发布:移动直播app 开源 源码 编辑:程序博客网 时间:2024/06/06 05:07

在学习jdk5.0的字符串类型时,我们看到了StringBuilder的出现,StringBuilder同样继承自CharSequence(其它三个CharSequence接口的类是CharBuffer,String,StringBuffer,除CharBuffer不推荐使用外,String和StringBuffer是我们经常使用的)。通过查看StringBuilder的API reference,我们可以看到,它和StringBuffer的方法基本上没有什么区别。但在具体实现上,StringBuilder是线程安全的,这点和StringBuffer有着本质的不同。
    我们知道String类已经提供了强大的功能(众多的API),那么我们为什么还要StirngBuilder呢?这是因为String对象的是固定的,一旦赋值就不能改变了,并且对其操作也是重量级的;而StringBuilder恰可以提供可变长字符串的灵活应用。下面介绍一下StirngBuilder的主要功能:
 
1.  append方法
    StringBuilder的append方法提供了许多的重载方式,如
        append(boolean/char/int/..所有基本类型)
        append(char[])  append(char[], int offset, int len)
        append(CharSequence)  append(CharSequence, int start, int end)
        append(String)  
        append(StringBuffer)
    我们经常使用“+”来进行两个String的合并,在这个过程中,实际上又创建了第三个String类,所以说“+”对String是重量级的;相反,对于StirngBuilder的append方法,是在原有StringBuilder对象上操作的,显然要轻量的多。
2.  delete操作
    包括:
         delete(int start, int end)    
         说明:start是删除的启示字符,删除时包括该字符,end是删除的结束
               字符,删除时不包括该字符。
         deleteCharAt(int index)
         说明:删除的index个字符,我们知道,java中字符串实际上就是字符
               数组,下标从0开始。
3.  insert方法
    StringBuilder的insert方法也提供了许多的重载方式,和append方法相似,只是在insert方法中增加了一个参数——插入位置,典型方式如下:
          insert(int index, T) 
     在index指示的字符之前插入。
4.  replace方法
    替换某一子串,不再赘述。
5.  capacity方法
    指示该StringBuilder的容量,初始时是16。 
0 0
原创粉丝点击