如图所示,有一个名为 board 的变量。它的定义为:
int board[][] = new int[10][10]
我想要这样的表示:
[[3, 3, 3, 3, 3, 3, 3, 3, 3, 3],
[3, 1, 1, 1, 1, 1, 1, 1, 1, 3],
[3, 1, 1, 1, 1, 1, 1, 1, 1, 3],
[3, 1, 1, 2, 1, 1, 1, 1, 1, 3],
[3, 1, 1, 1, 2, 2, 1, 1, 1, 3],
[3, 1, 1, 1, 2, 0, 1, 1, 1, 3],
[3, 1, 1, 2, 1, 1, 1, 1, 1, 3],
[3, 1, 1, 1, 1, 1, 1, 1, 1, 3],
[3, 1, 1, 1, 1, 1, 1, 1, 1, 3],
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]]
或者更好的是没有括号和逗号,如果可能的话,也可以像您使用的那样排列:
printf("%3", board[i][j])
打印它,因为可能有数字> 10,例如具有不同数量的字符。
我前段时间见过一些非常相似的东西,不幸的是我没有它的屏幕截图。
最佳答案
Eclipse 有一个名为 detail formatters 的功能允许您为非原始类型编写显示代码的自定义片段。听起来不错,对吧?
不幸的是,这不会直接解决您的问题,因为它不适用于基本类型或 arrays 。 Eclipse 始终对这些类型使用其内置格式化程序。
但是,您确实有几个选择。也许这个数组是包含类的成员 - 在这种情况下,您可以添加 toString()
按照您想要的方式格式化数组的方法,或者为该类型添加详细格式化程序,如上所述(例如,因为 toString()
方法可能已经以您无法更改的不同方式实现)。
如果情况并非如此,我所知道的最好方法是仍然编写您的格式化方法,例如 String ArrayFormatter.format2D(int[][] array)
然后使用 Expressions view使用数组调用此方法,例如:
ArrayFormatter.format2D(board)
然后表达式 View 将在 board
时向您显示格式化的输出。是在范围之内。这些表达式在调试运行中持续存在,因此您只需设置一次。
关于java - 如何在eclipse的 Debug模式下更改二维数组的表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034728/