在编程过程中遇到的StringBuffer初始化以及赋值的时候,遇到的问题。
StringBuffer sb=new StringBuffer(); //
StringBuffer sb1=new StringBuffer(1000); //
System.out.println("sb capacity:"+sb.capacity()); //默认容量是16,StringBuffer初始化函数默认开辟16位的空间
System.out.println("sb length:"+count.length()); //此时有空间,没内容,此字符串长度为0
System.out.println("sb1 capacity:"+sb1.capacity()); //容量为1000
System.out.println("sb1 length:"+count.length()); //长度依然为0
当字符串长度=0的时候,使用sb,setCharAt(i,'0')就会报错,数组越界。
当使用append以及初始化直接赋值的时候
StringBuffer sb2=new StringBuffer(“hello world”); //
StringBuffer sb3=new StringBuffer(); //
sb.append("hello world");
System.out.println("sb2 capacity:"+sb.capacity()); //容量为16+11=27
System.out.println("sb2 length:"+sb2.length()); //此时长度为11
System.out.println("sb3 capacity:"+sb.capacity()); //默认容量是16
System.out.println("sb3 length:"+sb3.length()); //此时长度为11