美文网首页
Java中StringBuilder类

Java中StringBuilder类

作者: 海人为记 | 来源:发表于2018-07-14 23:56 被阅读2次

    由于String是不可变对象,在对一个字符串进行增删改插的时候,总是会在内存中开辟新的空间。如果程序需要对字符串进行频繁的修改会造成非常昂贵的开销,为了解决这个问题,我们可以使用System.Text.stringBuilder这个类,可以大大提升性能。

    StringBuilder对象的初始化

    对于StringBuilder对象,初始化时不可将null直接赋予。

    StringBuilder sb = new StringBuilder(); //无参构造方法,默认容量是16
    StringBuilder sb = new StringBuilder(int capacity); //指定容量的字符串缓冲区对象
    StringBuilder sb = new StringBuilder(String string); //指定字符串内容的字符串缓冲区对象
    

    当我们将任意类型的数据添加到StringBuilder类对象中时候,StringBuilderr容量不够的情况下,会自动进行扩充容量,它的扩容公式为:原容量<<1 + 2

    方法 描述
    public int capacity() 返回当前容量
    public int length() 返回长度(字符数)实际值
    public StringBuilder append(String s) 将指定的字符串追加到此字符序列
    public StringBuilder insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中
    public StringBuilder insert(int offset, String string) 将String参数的字符串表示形式插入到此序列中
    public StringBuilder deleteCharAt(int index) 删除指定位置的字符,并返回本身
    public StringBuilder delete(int start, int end) 删除从指定位置开始指定位置结束的内容,并返回本身
    public StringBuilder reverse() 将此字符序列用其反转形式取代
    public StringBuilder replace(int start, int end, String str) 使用给定String中的字符替换此序列的子字符串中的字符
    public String substring(int start) 从指定位置截取到末尾
    public String substring(int start, int end) 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置(注意:返回值不再是StringBuffer本身,而是String)

    StringBuilder和String的相互替换

    1. String------->StringBuilder
      (1)通过构造方法
      (2)通过StringBuilder的append或者insert方法
    2. StringBuilder------->String
      (1)通过toString()方法
      (2)通过substring(0,length)方法

    相关文章

      网友评论

          本文标题:Java中StringBuilder类

          本文链接:https://www.haomeiwen.com/subject/errdpftx.html