Java 完全替换StringBuilder的正确方法是什么?

Java 完全替换StringBuilder的正确方法是什么?,java,Java,正在寻找替换StringBuilder内容的最佳方法 StringBuilder stringBuilder = new StringBuilder("abc"); stringBuilder = new StringBuilder("12"); 我通常用这个 StringBuilder stringBuilder = new StringBuilder("abc"); stringBuilder.setLength(0); stringBuilder.append("12"); 我想也

正在寻找替换StringBuilder内容的最佳方法

StringBuilder stringBuilder = new StringBuilder("abc");

stringBuilder = new StringBuilder("12");
我通常用这个

StringBuilder stringBuilder = new StringBuilder("abc");

stringBuilder.setLength(0);
stringBuilder.append("12");
我想也可以指向一个新的StringBuilder

StringBuilder stringBuilder = new StringBuilder("abc");

stringBuilder = new StringBuilder("12");

重复使用这样的StringBuilder通常会为您节省很多。就我个人而言,我永远不会为这些事情烦恼;只需创建一个新的StringBuilder对象,它简单、一致(您没有重置POJO,对吗?)


因此,我要说的是,保持简单,然后选择第二个选项,除非您在最初的帖子中没有提到一些有趣的约束。

像这样重用StringBuilder通常会为您节省一点或一无所有。就我个人而言,我永远不会为这些事情烦恼;只需创建一个新的StringBuilder对象,它简单、一致(您没有重置POJO,对吗?)


所以,我想说,保持简单,然后选择第二个选项,除非你有一些有趣的限制没有在最初的帖子中提到。

你的“最佳”标准是什么?这里的背景是什么?您知道下一个最终字符串的长度吗?所以基本上您希望“重置”StringBuilder?我倾向于发现创建一个新的是最清晰的方法。你对“最佳”的标准是什么?这里的背景是什么?您知道下一个最终字符串的长度吗?所以基本上您希望“重置”StringBuilder?我倾向于发现创建一个新的StringBuilder是最清晰的方法。如果在方法中将StringBuilder作为param传递,并且需要返回操纵过的StringBuilder,该怎么办?例如:doMethod(stringBuilder);在这种情况下,如果在doMethod中使用新的StringBuilder(“12”),则调用方方法将不会获得更新。是吗?好吧,撇开这将是一种可怕的编程方式不谈(简单的规则:永远不要操纵输入,请阅读干净的代码),你是对的;在这种情况下,您必须返回新的StringBuilder。如果您在方法中将StringBuilder作为param传递,并且需要返回操纵的StringBuilder,该怎么办?例如:doMethod(stringBuilder);在这种情况下,如果在doMethod中使用新的StringBuilder(“12”),则调用方方法将不会获得更新。是吗?好吧,撇开这将是一种可怕的编程方式不谈(简单的规则:永远不要操纵输入,请阅读干净的代码),你是对的;在这种情况下,您必须返回新的StringBuilder。