将数字数组转换为CSV字符串的最佳方法?

Ala*_*lan 3 java csv java-8

如果我有String[](假设没有逗号)我可以简单地生成CSV行.例如,

String[] header = {"header0", "header1", "header2"};
String joined = String.join(",", header);
Run Code Online (Sandbox Code Playgroud)

用同样的方法做什么是好的方法int[] vals01 = {0, 1, 2};?(我考虑使用Arrays.toString和切割两端是丑陋的.)

Mar*_*nik 8

这可以通过单行中的Streams API完成:

Arrays.stream(new int[] {0, 1, 2}).mapToObj(String::valueOf).collect(joining(","));
Run Code Online (Sandbox Code Playgroud)

(假设import static java.util.stream.Collectors.joining)


kup*_*fic 5

考虑使用新的(Java 8)StringJoiner.

对于String[]:

String[] header = {"header0", "header1", "header2"};
StringJoiner joiner = new StringJoiner(",");
Arrays.stream(header).forEach(joiner::add);
String joined = joiner.toString();
Run Code Online (Sandbox Code Playgroud)

对于以下情况int[]:

int[] ints = {1, 2, 3};
StringJoiner joiner = new StringJoiner(",");
Arrays.stream(ints).forEach(i -> joiner.add(Integer.toString(i)));
String joined = joiner.toString();
System.out.println(joined);
Run Code Online (Sandbox Code Playgroud)