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

再一次关于字符串追加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?是否有任何场景(也考虑

  • 编辑:我已经删除了用于out.write的for循环,它不是必需的。我在使用字符串数组时使用过它。