将 List<String> 转换为分隔字符串 [重复]
Posted
技术标签:
【中文标题】将 List<String> 转换为分隔字符串 [重复]【英文标题】:Convert List<String> to delimited String [duplicate] 【发布时间】:2011-09-08 20:16:45 【问题描述】:可能重复:Java: convert List<String> to a join()d string
有这个:
List<String> elementNames = Arrays.asList("h1", "h2", "h3", "h4", "h5", "h6");
什么是使用自定义分隔符获取字符串的优雅方法,如下所示:
"h1,h2,h3,h4,h5,h6"
【问题讨论】:
抱歉重复了。快速搜索了一下,似乎错过了。 【参考方案1】:StringBuilder sb = new StringBuilder();
for(String s: elementnames)
sb.append(s).append(',');
sb.deleteCharAt(sb.length()-1); //delete last comma
String newString = sb.toString();
更新:从 java 8 开始,您可以使用以下方法获得相同的结果:
List<String> elementNames = Arrays.asList("1", "2", "3");
StringJoiner joiner = new StringJoiner(",", "", "");
elementNames.forEach(joiner::add);
System.out.println(joiner.toString());
【讨论】:
这只是在他介意使用外部库的情况下。 =) 支持没有外部库 - 我正在重构具有已修复的“老式”依赖项的古老代码。 Java 8 版本可以用 Collectors 在 1 行上完成。字符串连接 = elementNames.stream().collect(Collectors.joining(","));【参考方案2】:如果你不介意使用 apache 提供的 StringUtils 库,你可以这样做:
// Output is "a,b,c"
StringUtils.join(["a", "b", "c"], ',');
https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html
【讨论】:
+1 表示紧凑,我会这样做 StringUtils.collectionToDelimitedString 而且你甚至可以传入 List 和 Iterable,而不仅仅是数组。以上是关于将 List<String> 转换为分隔字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 List<string> 转换为 List<myEnumType>?
C# 将 List<string> 转换为 Dictionary<string, string>
将 List<String> 直接转换为 List<Integer>
无法将 Dictionary<string, List<string>> 转换为 IReadOnlyDictionary<string, IReadOnlyCollect