length
返回当前长度
capacity
如果字符串长度没有初始化长度大,capacity返回初始化的长度
如果append后的字符串长度超过初始化长度,capacity返回增长后的长度
这里需要补充:
StringBuffer s = new StringBuffer(x); x为初始化容量长度
s.append(“Y”); "Y"表示长度为y的字符串
length始终返回当前长度即y;
对于s.capacity():
- 1.当y<x时,值为x
以下情况,容器容量需要扩展
- 2.当x<y<=2x+2时,值为 2x+2
- 3.当y>2*x+2时,值为y
源码:
举例:
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer s = new StringBuffer(10);
s.append("12345");
System.out.println(s.capacity());//容量长度 c1=10
System.out.println(s.length());//始终返回当前长度5
s.append("1234567890");
System.out.println(s.capacity());//超越容量按照(c2=c1*2+2)
System.out.println(s.length());//始终返回当前长度
s.append("1234567890");
s.append("1234567890");
System.out.println(s.capacity());//超越c2容量长度(c3=c2*2+2)
System.out.println(s.length());//始终返回当前长度
}
结果: