代码之家  ›  专栏  ›  技术社区  ›  Krunal

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

  •  6
  • Krunal  · 技术社区  · 8 年前

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

    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
    
    5 回复  |  直到 8 年前
        1
  •  13
  •   Kayaman    8 年前

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

    它们都创建了 IntStream ,映射每个 int 到a String 并用逗号连接。

    它们的性能也应该相当相同,尽管 从技术上讲 我在打电话 Integer.toString(int) 就在他打电话的时候 String.valueOf(int) 它的委托人。另一方面我在打电话 IntStream.of() 哪些代表要 Arrays.stream(int[]) ,所以是平局。

    String result = IntStream.of(intArray)
                             .mapToObj(Integer::toString)
                             .collect(Collectors.joining(", "));
    
        2
  •  11
  •   Suresh Atta    8 年前

    这应该可以

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

    阵列串联后,替换 [] 为您提供所需的输出。

        3
  •  4
  •   khelwood Muhammed Elsayed.radwan    8 年前

    您需要将int转换为字符串,并用逗号将它们连接起来。您可以使用流执行此操作。

    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"
    
        4
  •  4
  •   Bikas Katwal    8 年前
            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) + "\"";
    
        5
  •  2
  •   Luke Hutchison    5 年前

    这是我通常用于分隔符连接的模式。每次编写这个样板文件都很痛苦,但它的效率(在内存和处理时间方面)比新型的要高得多 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();
    }
    
    推荐文章