当前位置: 首页 > 面试题库 >

再一次关于字符串追加vs concat vs +

史高阳
2023-03-14
问题内容

可能是我正在分裂头发,但我想知道以下情况:

String newString = a + b + c;  //case 1


String newString = a.concat(b).concat(c);   //case 2

StringBuilder newString = new StringBuilder(); //case 3
newString.append(a);
newString.append(b);    
newString.append(c);

最好使用哪个?

我最好的意思是 任何方式

阅读这些内容后,其他帖子说案例3并不是最佳性能,其他案例1会以案例3结束,依此类推。

更具体。

例如,搁置一旁,如果必须维护他的代码,哪种风格更适合从其他html" target="_blank">程序员那里看到呢?

还是您认为哪种编程更有效?
否则您会认为速度更快等。

我不知道该如何表达。

像案例3这样的答案可能会更快,但是绝大多数程序员更喜欢案例1,因为如果它经过精心设计,那么可读性也最高。


问题答案:

情况1简洁明了,表达意图明确,相当于情况3。

情况2效率较低,可读性也较低。

情况3与情况1几乎一样有效,但是时间更长,可读性更差。

只有在必须串联时才使用案例3更好。否则,编译器会将情况1编译为情况3(除了使用构造StringBuilder之外new StringBuilder(a)),这使其比情况3更为有效。



 类似资料:
  • append key value 返回新字符串值的长度。

  • 问题内容: 在每篇文章中,“如何向JEditorPane附加字符串?”问题的答案。就像 我已经试过了: 结果,我得到了“终止时间:1000”,而没有“进程的分布:” 为什么会发生这种情况??? 问题答案: 我怀疑这是附加文本的推荐方法。这意味着每次更改某些文本时,都需要重新解析整个文档。人们之所以这样做,是因为他们不了解如何使用JEditorPane。包括我在内。 我更喜欢使用JTextPane然

  • 问题内容: 有没有简单的方法可以向现有字符串中添加n次字符或另一个字符串?我无法找到任何东西,等等。 问题答案: 您可以使用Java 8流API来执行此操作。以下代码从创建字符串:

  • 我能用下面两条语句具体解释一下内存和运行时开销吗? > String CONST=字符串常量;StringBuilder sb1=new StringBuilder(); sb1.append(CONST); StringBuilder sb2=新的StringBuilder() sb2。附加(“字符串常量”); second是否创建字符串对象和外接程序stringpool?是否有任何场景(也考虑

  • 使用字符串生成器时的最佳实践是什么。NET关于的多个调用。追加方法与单个调用。在连接其参数时追加? vs. 当使用一个而不是另一个时,会有任何性能损失吗?第二个变体在某些情况下可能更易读(并且更短)。 对短字符串进行这样简单的字符串串联会抵消使用字符串生成器的性能/内存增益吗?