首页 新闻 会员 周边

有关stringBuffer一个题目

0
[待解决问题]

StringBuffer s1=new StringBuffer(10);s1.append(“1234”)则s1.length()和s1.capacity()分别是多少?

飞鱼(Chris)的主页 飞鱼(Chris) | 初学一级 | 园豆:116
提问于:2016-02-25 22:01
< >
分享
所有回答(3)
0

4, 20?

XiaoFaye | 园豆:3087 (老鸟四级) | 2016-02-26 06:36
0
Ctrl` | 园豆:3317 (老鸟四级) | 2016-02-26 09:27

答案就是4请问4是怎么来的能告诉我一下吗,谢了

支持(0) 反对(0) 飞鱼(Chris) | 园豆:116 (初学一级) | 2016-02-27 10:20

@护: StringBuffer s1=new StringBuffer(10);//这里初始化StringBuffer的长度为10;

s1.append(“1234”)  //这里追加了4个字符、一个字符长度是1(汉字为2)

so..

支持(0) 反对(0) Ctrl` | 园豆:3317 (老鸟四级) | 2016-02-29 09:41
0

 

 

4, 10

1. StringBuffer s1=new StringBuffer(10);内部的过程如下

  • char[] values: values = new char[capacity];这里的capacity就是你的参数10
  • 你的capacity方法返回的是values.length;(由于s1.append(“1234”)只有4个字符,没有超过10,因此values并没有改变),所以s1.capacity()=10

2. s1.append(“1234”);的内部过程如下:

  • int count: count += str.length, 这里的str就是你的参数"1234",所以count=4
  • s1.length(),是返回就是这个变量count,所以sl.length() = count = 4;

PS:上述的count, values都是全局变量

 

 

huhx | 园豆:210 (菜鸟二级) | 2016-03-12 22:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册