StringBuilder子字符串异常

约翰
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()?

谢尔盖·阿菲诺根诺夫(Sergey Afinogenov)

StringBuildersubstring(int start)方法返回一个新的String,但不会改变StringBuilder物体本身,所以你应该将其结果保存到类型的变量String

String ss = sb.substring(s.length());
System.out.println(ss);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将StringBuilder返回为字符串JAVA

来自分类Dev

如何在StringBuilder中连接子字符串?

来自分类Dev

获取子字符串

来自分类Dev

从StringBuilder获取字符串

来自分类Dev

Java:从StringBuilder中删除字符串

来自分类Dev

字符串输出异常

来自分类Dev

StringBuilder.append()方法是否填满字符串池?

来自分类Dev

从异步方法向StringBuilder添加字符串

来自分类Dev

子字符串期间参数超出范围异常

来自分类Dev

StringBuilder到字符串数组如何转换

来自分类Dev

如何使用StringBuilder重建字符串?

来自分类Dev

日期的子字符串

来自分类Dev

在stringbuilder中分割字符串

来自分类Dev

子字符串-参数超出范围异常-startIndex参数

来自分类Dev

将字符连接到字符串-使用StringBuilder的append()

来自分类Dev

如何在StringBuilder中连接子字符串?

来自分类Dev

NSString子字符串

来自分类Dev

java子字符串引发异常

来自分类Dev

stringbuilder的安全字符串插入代码

来自分类Dev

编码StringBuilder查询字符串

来自分类Dev

替换StringBuilder字符串中的“字符”

来自分类Dev

子字符串期间参数超出范围异常

来自分类Dev

在C#StringBuilder字符串中包含空字符

来自分类Dev

从StringBuilder中删除匹配的字符串

来自分类Dev

Android子字符串

来自分类Dev

用 StringBuilder 替换字符串?

来自分类Dev

字符串修剪异常

来自分类Dev

使用 StringBuilder 连接查询字符串

来自分类Dev

从 java StringBuilder 中删除子字符串