【问题标题】:Printing out each number from a multi-dimensional array without comma after last number? [duplicate]在最后一个数字之后打印出没有逗号的多维数组中的每个数字? [复制]
【发布时间】:2026-02-02 22:20:03
【问题描述】:

我试图弄清楚如何在单行上显示多维数组的同一“行”中的每个数字,并用逗号分隔它们。

这就是我声明多维数组的方式

int[][] grid = {
            {1, 2, 3},
            {4},
            {5, 6},
            {123, 4567, 78901, 234567}
    };

这是我用来在单独的行上显示每个“行”的循环,它们之间用逗号分隔:

for(int[] row: grid){
        for(int col: row){
            System.out.print(col + ", ");
        }
        System.out.println();
    }

或者:

for(int row = 0; row < grid.length; row++){
        for(int col = 0; col < grid[row].length; col++){
            System.out.print(grid[row][col] + ", ");
        }
        System.out.println();
    }

一切正常,但每个“行”的最后一个数字也得到逗号,结果:

1, 2, 3, 
4, 
5, 6, 
123, 4567, 78901, 234567,

我怎样才能使最后一个数字不带逗号?

【问题讨论】:

  • col &lt; grid[row].length -1 时只打印逗号
  • 快速:System.out.print((col&gt;0?", ":"") + grid[row][col]);(可能有更好的选择)

标签: java arrays loops iteration


【解决方案1】:

很简单,很容易,你可以做到:

for(String s : Arrays.deepToString(grid).split("(?<=]), "))
{
    System.out.println(s.replaceAll("[\\]\\[]",""));
}

这里:

  • Arrays.deepToString 将数组作为字符串返回。
  • .split("(?&lt;=]), ") 会将其拆分到一维数组(在 grid 中)结束的位置。
  • s.replaceAll("[\\]\\[]","") 将删除所有[],它们存在于Arrays.deepToString 返回的字符串中

【讨论】:

    最近更新 更多