java - 如何在eclipse的 Debug模式下更改二维数组的表示?

标签 java arrays eclipse debugging

如图所示,有一个名为 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,例如具有不同数量的字符。

我前段时间见过一些非常相似的东西,不幸的是我没有它的屏幕截图。

I have an array

最佳答案

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/

相关文章:

java - 包括某些页面的特定内容

c - 尝试在 C 中 printf 一个字符串

java - 如何从 ICompilationUnit 获取文件路径信息?

java.io.InvalidClassException - Tomcat 无法启动

java - 为什么listView中的名称不断变化?

java - Runtime.totalMemory() 从 64 位 jvm 中配置的 -Xmx 值给我一个错误的值

c++ - 如何将字符添加到二维数组?

javascript - 如何通过 Angular 以表格格式打印数组对象?

java - 如何从 Eclipse 运行 Maven 项目?

eclipse - 如何更改Eclipse中CVS要求我创建SSH2的known_hosts的目录?