To concatenate String
we often use StringBuilder
instead of String
+ String
, but also we can do the same with String.format
按给定的语言环境、格式和参数返回格式化的字符串。
例子:
使用 StringBuilder 连接字符串
String concatenateStringWithStringBuilder(String name, String lName, String nick) {
final StringBuilder sb = new StringBuilder("Contact {");
sb.append(", name='").append(name)
.append(", lastName='").append(lName)
.append(", nickName='").append(nick)
.append('}');
return sb.toString();
}
使用 StringFormat 连接字符串:
String concatenateStringWithStringFormat(String name, String lName, String nick) {
return String.format("Contact {name=%s, lastName=%s, nickName=%s}", name, lName, nick);
}
在性能方面, String.Format
StringBuilder
高效吗?哪个更适合连接字符串,为什么?
更新
我检查了类似的 问题,但没有回答我的问题。到目前为止,我已经使用 StringBuilder
连接字符串,我应该按照它使用吗?或者我应该使用 String.format
吗?问题是哪个更好,为什么?
原文由 JUAN CALVOPINA M 发布,翻译遵循 CC BY-SA 4.0 许可协议
在用
StringBuilder
vsString.format
做了一些测试后,我明白了他们每个人需要多少时间来解决串联。这里是代码片段和结果代码:
多次运行代码后,我看到
String.format
需要更多时间:但是如果我在循环中运行相同的代码,结果就会改变。
第一次
String.format
运行它需要更多时间,之后时间更短,即使它不会因为StringBuilder
而变得恒定正如@G.Fiedler 所说:“
String.format
必须解析格式字符串……”根据这些结果,可以说
StringBuilder
比String.format
更有效