#java #csv #java-8
#java #csv #java-8
Вопрос:
Если у меня есть String[]
(предположим, без запятых) Я могу просто создать строку CSV. Например.,
String[] header = {"header0", "header1", "header2"};
String joined = String.join(",", header);
Какой хороший способ сделать эквивалент с помощью say int[] vals01 = {0, 1, 2};
? (Я считаю, что использовать Arrays.toString
и обрезать концы некрасиво.)
Ответ №1:
Это можно сделать с помощью Streams API в однострочном:
Arrays.stream(new int[] {0, 1, 2}).mapToObj(String::valueOf).collect(joining(","));
(предполагается import static java.util.stream.Collectors.joining
)
Ответ №2:
Рассмотрите возможность использования нового (Java 8) StringJoiner.
Для String[]
:
String[] header = {"header0", "header1", "header2"};
StringJoiner joiner = new StringJoiner(",");
Arrays.stream(header).forEach(joiner::add);
String joined = joiner.toString();
Для случая 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);