【问题标题】:Printing two dimensional array with brackets and commas打印带括号和逗号的二维数组
【发布时间】:2017-09-11 10:41:42
【问题描述】:

所以我试图打印一个带有括号和逗号的二维数组。这是我的代码:

public class ArrayPrinter {

    public static int printArray(int[][] arr) {
        {
            System.out.println("["); {
                for (int i = 0; i < arr.length; i++) {
                    for (int j = 0; j < arr[i].length; j++) {
                        System.out.print(arr[i][j]);
                        if (j < arr.length) {
                            System.out.print(", ");
                        }
                    }
                    System.out.println();
                }
            }
            System.out.println("]");
        }
        return 0;
    }

    public static void main(String[] args) {
        int[] oneD = {5, 6, 7, 8
        };
        printArray(oneD);
        System.out.println(); {
            int[][] twoD = {
                {2, 4, 6, 8},
                {8, 7, 9, 1},
                {3, 5, 1, 2}
            };
            printArray(twoD);
            System.out.println();
        }
        int[][] twoD2 = {
            {1, 2},
            {3, 4, 5},
            {6},
            {7, 8, 9}
        };
        printArray(twoD2);
        System.out.println();
    }

    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
            if (i < arr.length - 1) {
                System.out.print(", ");
            }
        }
        System.out.println("]");
    }
}

这是我现在的结果:

[5, 6, 7, 8]
[
2, 4, 6, 8
8, 7, 9, 1
3, 5, 1, 2
]
[
1, 2, 
3, 4, 5, 
6, 
7, 8, 9, 
]

这是我想要的结果:

[5, 6, 7, 8]
[
[2, 4, 6, 8]
[8, 7, 9, 1]
[3, 5, 1, 2]
]
[
[1, 2]
[3, 4, 5] 
[6]
[7, 8, 9]
]

我希望用括号和逗号打印数组,但每个一维数组应该在单独的行上。

感谢任何帮助。谢谢!

【问题讨论】:

  • 不只是说谢谢你的答案,你还应该点赞你喜欢的答案。这样,网站本身将奖励用户发布有用的答案。您还应该标记您认为最能解决您的问题的答案(如果适用)。这也标志着答案在问题概述中已解决,因此我们无需再次查看它;)
  • 如果以下任何一个答案满足了您的要求并且您对它们感到满意,那么您可以接受该特定答案。
  • 对不起各位!我是这个网站的新手!我赞成答案并接受了一个答案。谢谢!

标签: java arrays string eclipse methods


【解决方案1】:

为什么你不使用 Arrays.toString(oneD)Arrays.deepToString(twoD) 这样的:

int[] oneD = {5, 6, 7, 8};
int[][] twoD = {{2, 4, 6, 8}, {8, 7, 9, 1}, {3, 5, 1, 2}};
int[][] twoD2 = {{1, 2}, {3, 4, 5}, {6}, {7, 8, 9}};
System.out.println(Arrays.toString(oneD));
System.out.println(Arrays.deepToString(twoD));
System.out.println(Arrays.deepToString(twoD2));

这可以告诉你:

[5, 6, 7, 8]
[[2, 4, 6, 8], [8, 7, 9, 1], [3, 5, 1, 2]]
[[1, 2], [3, 4, 5], [6], [7, 8, 9]]

别忘了导入你的库:

import java.util.Arrays;

【讨论】:

  • 我猜是因为有时您希望列在视觉上对齐。
  • 我试过了,但列没有对齐;这只是一行。不过谢谢!
【解决方案2】:

二维数组方法的最简单实现。只需让它使用一维方法:

public static void printArray(int[][] grid) {
    System.out.println("[");
    for (int[] arr: grid) {
        printArray(arr);
    }
    System.out.println("]");
}

这里要注意的是,我没有在 2D 网格的行之间放置空线。如果您想要准确的输出,只需在 for 循环中添加一个空的 println()

 public static void printArray(int[][] grid) {
    System.out.println("[");
    for (int[] arr: grid) {
        printArray(arr);
        System.out.println();
    }
    System.out.println("]");
}

【讨论】:

  • @lmus 谢谢!!
【解决方案3】:

第二个循环环绕[]

public static int printArray (int[] [] arr) {
    System.out.println("["); {
        for (int i = 0; i < arr.length; i++) {
            System.out.print("[");
            for(int j = 0; j < arr[i].length; j++) 
            {System.out.print(arr[i][j]); 
            if (j<arr[i].length-1) {
                System.out.print(", ");}
            }
            System.out.println("]");
        }
    }
    System.out.println("]");
    return 0;   
}

【讨论】:

  • 非常感谢!!你真的是一个救生员。
  • @KatrinaRoss 如果它解决了您向其他人表明的问题,请接受答案。这个问题有很多答案选择任何对您有帮助的答案。这是您的职责..
【解决方案4】:
for (int i = 0; i < arr.length; i++) {
    System.out.print("[");
    for(int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j]); 
        if (j<arr.length) {
            System.out.print(", ");
        } else {
            System.out.println();
        }
    }
    System.out.print("]");
}

用上面的替换你的两个for循环。您需要将括号附加并添加到主数组中的每个数组。希望这会有所帮助!

【讨论】:

  • 很高兴能帮上忙 :)
猜你喜欢
  • 2022-01-10
  • 2022-10-13
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多