如何在Java中显示以逗号分隔的数组元素?

时间:2019-12-26 19:00:50

标签: java arrays for-loop

我需要显示用逗号分隔的数组元素。这是我到目前为止的代码:

    int[] arr = { 10, 20, 30 };
    int[] newArray = Arrays.copyOf(arr, arr.length + 1);
    newArray[newArray.length - 1] = 40;

    System.out.print("[ ");

    for (int i = 0; i < newArray.length; i++) {
        System.out.print(", " + newArray[i]);

        if (newArray.length - 1 > newArray[i])
            System.out.print(", ");
        else
            System.out.print(" ");

    }
    System.out.println("]");

我的输出是这样的:[ , 10 , 20 , 30 , 40 ]

我需要删除第一个索引之前的逗号,也不要在最后一个索引之后显示逗号。

5 个答案:

答案 0 :(得分:5)

int[] arr = { 10, 20, 30 };

System.out.println(Arrays.toString(arr));

它执行与尝试使用算法相同的操作。

Output: 
  [10, 20, 30]

答案 1 :(得分:2)

使用StringJoiner

import java.util.StringJoiner;
public class MyClass {
    public static void main(String args[]) {

        int[] x = {1,2,3,4,5};
        StringJoiner sj = new StringJoiner(",", "[", "]");
        for(int i : x) {
            sj.add(i + "");
        }
        System.out.println(sj);
    }
}

输出:

[1,2,3,4,5]

您还可以使用Array Related utils Class java.util.Arrays.toString(args);

答案 2 :(得分:0)

尝试一下:

    public static void main(String[] args) {

        int[] arr = { 10, 20, 30 };     
        int[] newArray = Arrays.copyOf(arr, arr.length + 1);
        newArray[newArray.length - 1] = 40;

        System.out.println(Arrays.toString(newArray));
    }

答案 3 :(得分:0)

您也可以使用Streams这样操作。

      int[] arr = { 1, 2, 3, 4, 5
      };
      String arrStr = Arrays.stream(arr).mapToObj(String::valueOf).collect(
            Collectors.joining(", "));

      System.out.println(arrStr);

您也可以通过使用Arrays.toString()并修剪方括号来获得相同的效果。

      String arrStr2 = Arrays.toString(arr);
      arrStr2 = arrStr2.substring(1,arrStr2.length()-1);
      System.out.println(arrStr2);

它们都显示。

  

1、2、3、4、5

答案 4 :(得分:-1)

更好的解决方案是染色蛋白的解决方案。

但是考虑到您的解决方案,这可能类似于toString()实现

在这种情况下,只需在(i == 0)时打印“,”即可

rel="preload"
相关问题