“我们只需覆盖 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更好的东西了。”
“谢谢你提供的信息。我想有一天它可能会派上用场。”
GO TO FULL VERSION