在最后一个数字后打印出多维数组中的每个数字而不使用逗号?

时间:2016-05-13 12:48:08

标签: java arrays loops iteration

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

这是我宣布多维数组的方式

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,

如何才能使最后一个数字不能得到逗号?

1 个答案:

答案 0 :(得分:1)

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

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

下面:

  • Arrays.deepToString将以String形式返回数组。
  • .split("(?<=]), ")会将其拆分为1-d数组(grid)结束的位置。
  • s.replaceAll("[\\]\\[]","")将删除[
  • 返回的字符串中的所有]Arrays.deepToString