Search code examples
javaarraysstringint

Convert int[] to comma-separated string


How can I convert int[] to comma-separated String in Java?

int[] intArray = {234, 808, 342};

Result I want:

"234, 808, 342"

Here are very similar reference question but none of those solution provide a result, exact I need.

What I've tried so far,

String commaSeparatedUserIds = Arrays.toString(intArray); // result: "[234, 808, 342]"
String commaSeparatedUserIds = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", ""); // result: "234808342"
String commaSeparatedUserIds = intArray.toString();  // garbage result

Solution

  • Here's a stream version which is functionally equivalent to khelwood's, yet uses different methods.

    They both create an IntStream, map each int to a String and join those with commas.

    They should be pretty identical in performance too, although technically I'm calling Integer.toString(int) directly whereas he's calling String.valueOf(int) which delegates to it. On the other hand I'm calling IntStream.of() which delegates to Arrays.stream(int[]), so it's a tie.

    String result = IntStream.of(intArray)
                             .mapToObj(Integer::toString)
                             .collect(Collectors.joining(", "));