黑马程序员技术交流社区

标题: length() 和 capacity() [打印本页]

作者: 2528870651    时间: 2014-4-20 15:43
标题: length() 和 capacity()
本帖最后由 2528870651 于 2014-4-22 10:53 编辑
  1. char[] ch = new char[50];
  2.                         sb.getChars(0,sb.length(),ch,1);   //这里没问题
  3.                         //sb.getChars(0,sb.capacity(),ch,1);//字符串角标越界,
  4.                         //那么这个length()和capacity()有什么区别啊               
  5.                         System.out.println("sb.length() = "+sb.length());   //结果是32
  6.                         System.out.println("sb.capacity() = "+sb.capacity());  //结果34
复制代码

作者: ノtrack    时间: 2014-4-20 16:40
  1. length()和capacity()

  2. 通过调用length()方法可以得到当前StringBuffer的长度。而通过调用capacity()方法可以得到总的分配

  3. 容量。它们的一般形式如下:
  4. int length()
  5. int capacity()
  6. 这里是一个例子:
  7. //StringBuffer length vs.capacity.
  8. class StringBufferDemo
  9. {
  10.      public static void main(String args[])
  11.      {
  12. StringBuffer sb = new StringBuffer("Hello");

  13. System.out.println("buffer = "+sb);
  14. System.out.println("length = "+sb.length);
  15. System.out.println("capacity = "+sb.capacity);
  16.      }
  17. }

  18. 下面是这个程序的输出,它说明了StringBuffer如何为另外的处理预留额外的空间:
  19. buffer = Hello
  20. length = 5
  21. capacity = 21

  22. 由于sb在创建时由字符串"Hello"初始化,因此它的长度为5。因为给16个附加的字符自动增加了存储空间,因此它的存储容量为21.
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2