给定一个字符串集合,在不使用外部库的情况下,您将如何在纯 Java 中加入它们?
鉴于这些变量:
Collection<String> data = Arrays.asList("Snap", "Crackle", "Pop");
String separator = ", ";
String joined; // let's create this, shall we?
这就是我在 Guava 中的做法:
joined = Joiner.on(separator).join(data);
joined = StringUtils.join(data, separator);
但是在纯 Java 中,真的没有比这更好的方法了吗?
StringBuilder sb = new StringBuilder();
for(String item : data){
if(sb.length()>0)sb.append(separator);
sb.append(item);
}
joined = sb.toString();
最佳答案
我会说不使用 Guava 的 best 方法(如果最好的意思不是“最简洁”)是使用 Guava 在内部使用的技术,对于您的示例来说看起来像这样:
Iterator<String> iter = data.iterator();
StringBuilder sb = new StringBuilder();
if (iter.hasNext()) {
sb.append(iter.next());
while (iter.hasNext()) {
sb.append(separator).append(iter.next());
}
}
String joined = sb.toString();
这不需要在迭代时进行 boolean 检查,也不需要对字符串进行任何后处理。
关于java - 在 Java 中加入字符串集合的首选习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930939/