将int []转换为逗号分隔的字符串

时间:2018-03-08 12:11:44

标签: java arrays string int

如何在Java中将int[]转换为逗号分隔的字符串?

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

我想要的结果:

"234, 808, 342"

以下是非常相似的参考问题,但这些解决方案都没有提供我需要的结果。

到目前为止我尝试过的,

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

6 个答案:

答案 0 :(得分:8)

这应该

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

在Arrays toString之后,替换[]会为您提供所需的输出。

答案 1 :(得分:8)

这是一个流版本,在功能上等同于khelwood,但使用不同的方法。

他们都创建IntStream,将每个int映射到String并加入逗号。

它们在性能上也应该完全相同,虽然技术上我直接调用Integer.toString(int)而他正在调用代理它的String.valueOf(int)。另一方面,我正在呼叫IntStream.of()代表Arrays.stream(int[]),所以这是一个平局。

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

答案 2 :(得分:4)

您希望将整数转换为字符串,并使用逗号连接它们。你可以用流来做到这一点。

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 ", "

结果:

"234, 808, 342"

答案 3 :(得分:3)

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

这应该有效。基本思路是从Arrays.toString()获取子字符串,不包括第一个和最后一个字符

如果需要在结果中引用,请将最后一行替换为:

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

答案 4 :(得分:1)

在Java 8中,您可以使用:

SELECT Id AS ParticipantId, TeamId,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date), 0) AS FirstWeight,
ISNULL((SELECT TOP(1) Weight FROM ParticipantData WHERE (ParticipantId = Participants.Id) AND (Weight <> 0) ORDER BY Date DESC), 0) AS LastWeight,
FirstWeight - LastWeight As WeightDiff // this doesn't work
FROM Participants

答案 5 :(得分:1)

这是我经常用于分隔符连接的模式。每次都写这个样板很痛苦,但是(在内存和处理时间方面)它比其他人发布的新型Stream解决方案效率更高。

public static String toString(int[] arr) {
    StringBuilder buf = new StringBuilder();
    for (int i = 0, n = arr.length; i < n; i++) {
        if (i > 0) {
            buf.append(", ");
        }
        buf.append(arr[i]);
    }
    return buf.toString();
}