这里的10是str的容量,我要是想在这10个容量里写东西,要怎么写呢?不会是10的容量太小吧。

解决方案 »

  1.   

    StringBuffer的好处就是不需要限制它的容量大小,可以节省空间,想加内容就调用StringBuffer类中的append()方法
    想删除就调用delete()方法 
    总之这个类有很多方法很实用你可以去API里看看
      

  2.   

    StringBuffer是一个用于存放动态存放字符串数据的类,他继承自java.lang.AbstractStringBuilder这个类。所谓动态存放是指:你无需考虑StringBuffer大小的问题。
    当你利用StringBuffer的append方法向其自身添加字符串的时候,如果此时StringBuffer默认提供的空间大小不够用,
    那么它会自动扩展自身的存储空间,以保证数据能够正常的放入到StringBuffer其中。你刚才在上面写道的 new StringBuffer(10) 
    我告诉你,StringBuffer默认的存储空间大小是16个字符,也就是说 new StringBuffer() 就等于 new StringBuffer(16),这回知道了吧。StringBuffer的底层是利用它的父类(AbstractStringBuilder)内部的一个默认长度为16的字符数组来存放数据的。(即:char value[];)每当你利用 StringBuffer的append方法向其中添加一个字符串的时候StringBuffer都会调用其父类(AbstractStringBuilder)的append方法,
    然后AbstractStringBuilder会判断其内部用于存放数据的那个char[]数组是否已经满了,
    (1)如果没有满,就会将你传入的字符串转化为
    字符并存入到那个字符数组中(即: str.getChars(0, len, value, count);)。
    (2)而如果那个char[]数组已经满了,那么AbstractStringBuilder会创建一个大小为当前数组两倍的新的char[]数组。
    然后利用System.arraycopy(value, 0, newValue, 0, count);将原始数据拷贝到这个新的数组中即可。
    就是这样啦~~
    写的我手的疼了牛年大吉~~
      

  3.   

    你这里定义的10只是初始容量,默认的是16
    想往这里写呢,用appand()方法就可以啦