StringBuilder如何读取超过16个空元素?

时间:2014-03-06 12:23:59

标签: java stringbuilder

这是我的代码:

   public class Stringclass
   {
   public static void main(String args[])
   {

   StringBuilder s=new StringBuilder();
    s.append("v g f j v n x jc kn vd df jdf jkd kfd kfk dfkd lkd fmk dkkdfd kfdkfn kdfd end");


  System.out.println(s);
   }
   }

,输出为

    v g f j v n x jc kn vd df jdf jkd kfd kfk dfkd lkd fmk dkkdfd kfdkfn kdfd end

根据[Java docs](http://docs.oracle.com/javase/tutorial/java/data/buffers.html)字符串构建器只能存储16个空字符,所以我怎样才能将所有字符作为输出。

如果我写这段代码,那么输出也一样:

    public class Stringclass
    {
    public static void main(String args[])
    {

    StringBuilder s=new StringBuilder("v g f j v n x jc kn vd df jdf jkd kfd kfk dfkd lkd fmk dkkdfd kfdkfn kdfd end");



    System.out.println(s);
     }
     }

3 个答案:

答案 0 :(得分:6)

你误读了那个。文档说明了最初的容量。通过“空格”,您应该阅读“可以放置角色的空单元格”。

存储字符的基础数组具有给定的初始大小(容量),默认值为16,并在需要时自动增长。

答案 1 :(得分:2)

了解Doc

中的行
  

capacity()方法返回的容量始终大于或等于长度(通常大于),并将根据需要自动扩展以适应字符串构建器的添加。

答案 2 :(得分:1)

根据您链接的文件:

  

许多操作(例如,append()insert()setLength())可以增加字符串构建器中字符序列的长度,以便生成{{1} }将大于当前length()。发生这种情况时,容量会自动增加。