格式化字符串与简单字符串的区别

时间:2014-12-07 07:37:07

标签: java string substring string-formatting stringbuilder

这些代码块之间有什么区别 - 性能,内存或其他代码有什么不同吗?

第一个代码是:

String name = "Jack";
String familyName = "Hunter";

String result = String.format("Your name is %s %s",name, familyName);

和第二个代码是:

String name = "Jack";
String familyName = "Hunter";

String result = "Your name is " + name + " " + familyName;

感谢您的关注; - )

1 个答案:

答案 0 :(得分:2)

它产生的输出没有区别。 result变量在每种情况下都具有相同的内容。

但是String.format()可以让你做更强大的格式化,包括指定浮点数的小数位数等。

我希望String.format()版本相对较慢,只是因为它更强大,并且必须检查格式字符串的内容,然后才能执行与第二个版本中相同的操作。换句话说,它必须花一些时间来计算你想做的事情,而在第二个版本中,编译器可以自己解决它。

但是,实际上,出于性能原因选择其中一个片段而不是另一个片段看起来就像微观优化一样几乎不会得到回报。除非你明确需要性能(即,这是针对某些性能关键的紧密循环),否则你应该选择更具可读性的那个。