Convert int[] to comma-separated string

2020-03-23 18:28发布

问题:

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.

  • How to convert an int array to String with toString method in Java

  • How do I print my Java object without getting "SomeType@2f92e0f4"?

  • How to convert a List<String> into a comma separated string without iterating List explicitly

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

回答1:

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(", "));


回答2:

This should do

String arrAsStr = Arrays.toString(intArray).replaceAll("\\[|\\]", "");

After Arrays toString, replacing the [] gives you the desired output.



回答3:

You want to convert the ints to strings, and join them with commas. You can do this with streams.

int[] intArray = {234, 808, 342};
String s = Arrays.stream(intArray)
                 .mapToObj(String::valueOf) // convert each int to a string
                 .collect(Collectors.joining(", ")); // join them with ", "

Result:

"234, 808, 342"


回答4:

        int[] intArray = {234, 808, 342, 564};
        String s = Arrays.toString(intArray);
        s = s.substring(1,s.length()-1);

This should work. basic idea is to get sub string from Arrays.toString() excluding first and last character

If want quotation in result, replace last line with:

s = "\"" + s.substring(1,s.length()-1) + "\"";


回答5:

In java 8 you can use:

String joined = String.join(",", iteratable);