黑马程序员技术交流社区
标题:
length() 和 capacity()
[打印本页]
作者:
2528870651
时间:
2014-4-20 15:43
标题:
length() 和 capacity()
本帖最后由 2528870651 于 2014-4-22 10:53 编辑
char[] ch = new char[50];
sb.getChars(0,sb.length(),ch,1); //这里没问题
//sb.getChars(0,sb.capacity(),ch,1);//字符串角标越界,
//那么这个length()和capacity()有什么区别啊
System.out.println("sb.length() = "+sb.length()); //结果是32
System.out.println("sb.capacity() = "+sb.capacity()); //结果34
复制代码
作者:
ノtrack
时间:
2014-4-20 16:40
length()和capacity()
通过调用length()方法可以得到当前StringBuffer的长度。而通过调用capacity()方法可以得到总的分配
容量。它们的一般形式如下:
int length()
int capacity()
这里是一个例子:
//StringBuffer length vs.capacity.
class StringBufferDemo
{
public static void main(String args[])
{
StringBuffer sb = new StringBuffer("Hello");
System.out.println("buffer = "+sb);
System.out.println("length = "+sb.length);
System.out.println("capacity = "+sb.capacity);
}
}
下面是这个程序的输出,它说明了StringBuffer如何为另外的处理预留额外的空间:
buffer = Hello
length = 5
capacity = 21
由于sb在创建时由字符串"Hello"初始化,因此它的长度为5。因为给16个附加的字符自动增加了存储空间,因此它的存储容量为21.
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2