如何将List <String>列表转换为csv字符串

blu*_*sky 20 java csv string

我有一个List字符串.是否有Java便捷方法将其转换ListCSV String?所以"test1,test2,test3"是List 3 String元素的转换结果,其中包含"test1""test2""test3"

我可以自己编写方法来转换,String但也许这已经由API实现了?

Bri*_*new 39

Apache Commons Lang包含一个StringUtils.join()方法,正是出于此目的.请注意,存在不同的风味.

截至2014年3月,Java 8现在有一个StringJoiner

  • 在天真的情况下,这将足够,但如果字符串本身包含逗号,引号或换行符,它将失败. (7认同)
  • 一个很好的答案,但如果它给出了使用示例,那就更好了.例如,对于Apache Commons方法,`String myCsvString = StringUtils.join(myList,",")`. (3认同)
  • 噢 StringJoiner 很好。String myCsvString = String.join(",", myList); (2认同)

Jav*_*der 13

如果您使用的是Java 8

List<String> objects= Arrays.asList("Test1","Test2","Test3");
String objectsCommaSeparated = String.join(",", objects);
System.out.println(objectsCommaSeparated);
Run Code Online (Sandbox Code Playgroud)

随着Streams

String objectsCommaSeparated = objects.stream().collect(Collectors.joining(","));
System.out.println(objectsCommaSeparated);
Run Code Online (Sandbox Code Playgroud)


The*_*Cat 10

有一个名为Joiner的Guava类可以很容易地创建这些字符串.

Joiner.on(",").join(yourStrings)


gre*_*aco 8

有一些有用的方法org.springframework.util.StringUtils.

例:

String text = StringUtils.arrayToCommaDelimitedString(new Object[]{"test1", "test2", "test3"});
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请访问:http: //static.springsource.org/spring/docs/1.2.9/api/org/springframework/util/StringUtils.html


ACh*_*ice 8

写了这个简单的方法;

String listToCsv(List<String> listOfStrings, char separator) {
    StringBuilder sb = new StringBuilder();

    // all but last
    for(int i = 0; i < listOfStrings.size() - 1 ; i++) {
        sb.append(listOfStrings.get(i));
        sb.append(separator);
    }

    // last string, no separator
    if(listOfStrings.size() > 0){
        sb.append(listOfStrings.get(listOfStrings.size()-1));
    }

    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

  • 如果列表为空,这将崩溃 (2认同)
  • 我认为这正是人们应该接受精心编写和调试的库的原因 (2认同)

RNJ*_*RNJ 6

如果你想使用核心java,我认为你可以使用以下内容.

java.util.Arrays.toString(list.toArray(new String[list.size()]).replace("[", "\"").replace("]", "\"");
Run Code Online (Sandbox Code Playgroud)

警告:我没有检查过所有这些情况.;)

Arrays.toString会产生类似的东西

[a], [b], [c]
Run Code Online (Sandbox Code Playgroud)

如果你列出包含 a, b, c

我们可以使用以下逗号分隔的优点,只需删除方括号并将其替换"为逗号在数据中的情况.如果你不需要这个,你就可以做到replace("[", ""