这非常简单,但我看到了许多变种,我在其他地方看不到自己的做法.鉴于:
Iterable<String> strings;
Run Code Online (Sandbox Code Playgroud)
创建一个包含所有字符串的String,以逗号分隔.
使用Java 8,幸运的是,最终有一种标准方法可以做到这一点:
String string = StreamSupport.stream(strings.spliterator(), false)
.collect(Collectors.joining(", "));
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有一种更简单的方法可以从a Iterable到a Stream(还)
使用
org.apache.commons.lang.StringUtils.join(Iterator iterator, String separator)
Run Code Online (Sandbox Code Playgroud)
从
http://commons.apache.org/lang/
如果你想自己做,我有时会这样做
StringBuilder sb = new StringBuilder();
String separator = "";
for (String string : iterable) {
sb.append(separator);
sb.append(string);
separator = ", ";
}
Run Code Online (Sandbox Code Playgroud)
final StringBuilder sb = new StringBuilder();
final Iterator<String> it = iterable.iterator();
if(it.hasNext()){
sb.append(it.next());
while(it.hasNext()){
sb.append(',').append(it.next());
}
}
return sb.toString();
Run Code Online (Sandbox Code Playgroud)
但我当然更喜欢使用Guava的版本
String joined = Joiner.on(',').join(iterable);
Run Code Online (Sandbox Code Playgroud)
(公平地说:我之前曾问过一个非常相似的问题)
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |