public class Demo234234 {
public static void main(String[] args) {
String s = "aa";
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);
sb.append("bb");
System.out.println(sb);
sb.substring(s.length());
System.out.println(sb); // Here I expected as "bb", but getting "aabb", why?
System.out.println(sb.substring(s.length()));
}
}
输出:
aa
aabb
aabb
bb
我期望该行的输出为“ bb” System.out.println(sb);
,但是取而代之的是“ aabb”,也许知道为什么?
sb.append("bb");
表现正常,那为什么不sb.substring(s.length());
呢?
还有一件事要问:哪个更好用?stringObj.substring()或stringBuilder.substring()?
在StringBuilder
该substring(int start)
方法返回一个新的String
,但不会改变StringBuilder
物体本身,所以你应该将其结果保存到类型的变量String
。
String ss = sb.substring(s.length());
System.out.println(ss);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句