将List <String>转换为分隔的String

Alp*_*Alp 14 java string list

可能重复:
Java:将List <String>转换为join()d字符串

有这个:

List<String> elementNames = Arrays.asList("h1", "h2", "h3", "h4", "h5", "h6");
Run Code Online (Sandbox Code Playgroud)

使用自定义分隔符获取String的优雅方法是什么,如下所示:

"h1,h2,h3,h4,h5,h6"
Run Code Online (Sandbox Code Playgroud)

gou*_*uki 37

StringBuilder sb = new StringBuilder();

for(String s: elementnames) {
   sb.append(s).append(',');
}

sb.deleteCharAt(sb.length()-1); //delete last comma

String newString = sb.toString();
Run Code Online (Sandbox Code Playgroud)

更新:启动java 8,您可以使用以下命令获得相同的结果:

    List<String> elementNames = Arrays.asList("1", "2", "3");

    StringJoiner joiner = new StringJoiner(",", "", "");
    elementNames.forEach(joiner::add);

    System.out.println(joiner.toString());
Run Code Online (Sandbox Code Playgroud)

  • Java 8版本可以与收集器一起完成1行。加入的字符串= elementNames.stream()。collect(Collectors.joining(“,”)); (3认同)
  • 这只是他介意使用外部库.=) (2认同)

deb*_*cey 28

如果您不介意使用apache提供的StringUtils库,您可以:

// Output is "a,b,c"
StringUtils.join(["a", "b", "c"], ','); 
Run Code Online (Sandbox Code Playgroud)

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html

  • StringUtils.collectionToDelimitedString (2认同)