我指的是连接String
s 具有一定的String
中间,例如用句点分隔的句子连接,或用逗号连接参数列表。我知道您可以使用库,但有时这些库不能满足您的要求,例如当您想要生成要连接的短语时。到目前为止我已经想出了两种解决方案
StringBuffer sentence = new StringBuffer();
String period = "";
for ( int i = 0; i < sentences.length; i++ ) {
sentence.append( period + sentences[i] );
period = ". ";
}
其遭受冗余重新分配period
。还有
StringBuffer actualParameters = new StringBuffer();
actualParameters.append( parameters[0] );
for ( int i = 1; i < parameters.length; i++ ) {
actualParameters.append( ", " + parameters[i] );
}
这消除了重新分配,但看起来仍然没有吸引力。任何其他解决方案将不胜感激。
有一个Apache Commons Lang 中的一系列函数就可以做到这一点 http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html#join%28java.util.Collection,%20java.lang.String%29.
如果你必须自己编码,我通常做这种事情的方式如下:
StringBuilder sb = new StringBuilder();
for (String sentence : sentences) {
if (sb.length() != 0) {
sb.append(". ");
}
sb.append(sentence);
}
该版本允许sentences
是任何可迭代的(返回字符串)。还要注意使用StringBuilder
代替StringBuffer
.
很容易将其概括为类似的东西org.apache.commons.lang.StringUtils.join
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)