【发布时间】:2012-04-22 03:54:19
【问题描述】:
我试图了解最佳实践是什么,以及为什么在不同情况下连接字符串文字和变量。例如,如果我有这样的代码
StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA")
.append(B_String).append("CCCCCCCCCCC").append(D_String)
.append("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE")
.append("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
这是这样做的方法吗?从this post,我注意到Strings 上的+ 运算符创建了一个新的StringBuilder 实例,连接操作数,并返回一个String 转换,这似乎比仅仅调用.append() 要多得多;所以如果这是真的,那是不可能的。但是String.concat() 呢?每次连接都使用.append() 是否合适?或者只是用于变量,文字可以附加.concat()?
StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA")
.append(B_String.concat("CCCCCCCCCCC")).append(D_String
.concat("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE")
.concat("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"));
处理这些情况的最佳做法和性能的一般规则是什么?我对+ 的假设是否正确,它真的不应该被使用吗?
【问题讨论】:
-
我想基本上你已经明白了。关于 String + “真的不应该使用”的意见不同。关键是你明白后果
标签: java string stringbuilder string-concatenation