“我们只需覆盖 StringBuilder,然后我认为我们就完成了。”

“如您所知,StringBuilder 类似于 String 类,只是它是可变的。”

“而且我还记得,当我们简单地将字符串相加时,编译器会生成使用 StringBuilder 的代码。”

“是的,你是对的。你的记忆力真好。话又说回来,每个机器人都有。我总是忘记这一点。”

“让我们看看使用StringBuilder类可以做什么:”

1) 我有一个普通的字符串,我想让它可变。我怎么做?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);

2) 我想在现有的可变字符串中添加一个字符?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");

3) 以及如何将 StringBuilder 转换回字符串?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.append("!");
s = s2.toString();

4)如果我需要删除一个角色?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.deleteCharAt(2); //Becomes "Beder"

5) 如何用另一个替换字符串的一部分?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.replace (3, 5, "_DE_"); //Becomes "Ben_DE_r"

6) 如果我需要反转一个字符串怎么办?

String s = "Bender";
StringBuilder s2 = new StringBuilder(s);
s2.reverse(); //Becomes "redneB";

“太好了。谢谢,Ellie,一切都说得通了。”

“我很高兴你喜欢它。”

“我还想提醒你一些比拉博应该告诉你的事情。”

“还有另一个类称为StringBuffer。它类似于StringBuilder,但它的方法被声明为同步的。这意味着在调用其中一个方法之前,Java 机器会检查对象是否忙;如果不是,JVM 会标记它因为忙。退出方法后,对象被释放。因此,这些调用速度较慢。除非万不得已,否则不应使用StringBuffer 。”

“但是,如果您需要一个可跨多个线程使用的可变字符串,那么您找不到比StringBuffer更好的东西了。”

“谢谢你提供的信息。我想有一天它可能会派上用场。”