【问题标题】:Convert List<String> to delimited String [duplicate]将 List<String> 转换为分隔字符串 [重复]
【发布时间】: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"

【问题讨论】:

  • 抱歉重复了。快速搜索了一下,似乎错过了。

标签: java string list


【解决方案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,而不仅仅是数组。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多