这很草率,但它适用于printint 6x6 2D阵列和每侧4个阵列:
1 4 2 2 2 3
--------------
1 | 0 0 0 2 0 0 | 4
3 | 3 4 0 0 0 0 | 2
3 | 0 0 0 1 0 0 | 2
2 | 0 1 0 0 0 0 | 4
6 | 0 0 0 0 0 6 | 1
2 | 5 0 1 0 0 4 | 2
--------------
2 1 3 4 3 2
null
任何人都可以帮我调整此方法以适用于任何大小的数组吗?不只是一个6x6?
@Override
public String toString() {
System.out.print(' ');
System.out.print(' ');
for(int i = 0; i < NS.length; i++){
System.out.print(NS[i]);
System.out.print(' ');
}
System.out.println();
for (int i = 0; i < board.length; i++) {
if (i % board.length == 0) {
System.out.println(' ' + "--------------");
}
}
for (int j = 0; j < board.length; j++) {
if (j % board.length == 0) {
for (int r = 0; r < board.length; r++) {
System.out.print(WE[r]);
System.out.print(" | ");
for (int c = 0; c < board[r].length; c++) {
System.out.print(board[r][c]);
System.out.print(' ');
}
System.out.print(" | ");
System.out.print(EW[r]);
System.out.println();
}
}
}
System.out.println(' ' + "--------------");
System.out.print(' ');
System.out.print(' ');
for(int i = 0; i < SN.length; i++){
System.out.print(SN[i]);
System.out.print(' ');
}
System.out.println();
return null;
}
NS
是顶部的顶部数组
SW
是底部的数组
WE
是左侧的数组
EW
是右侧的数组
和board
是2D数组
这是一个7x7的结果:
1 4 2 2 2 3 4
--------------
1 | 0 0 0 2 0 0 1 | 4
3 | 3 4 0 0 0 0 0 | 2
3 | 0 0 0 1 0 0 0 | 2
2 | 0 1 0 0 0 0 0 | 4
6 | 0 0 0 0 0 6 0 | 1
2 | 5 0 1 0 0 4 0 | 2
4 | 0 0 0 0 0 0 0 | 2
--------------
2 1 3 4 3 2 3
null
这是一个4x4的结果:
1 4 2 2
--------------
1 | 0 0 0 2 | 4
3 | 3 4 0 0 | 2
3 | 0 0 0 1 | 2
2 | 0 1 0 0 | 4
--------------
2 1 3 4
null
答案 0 :(得分:1)
toString
需要返回String
,因此您应该构建一个StringBuffer
并返回 - System.out.print
,而不是返回null。可以使用StringUtils.repeat
来实现水平线。
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(" ");
for(int i = 0; i < NS.length; i++){
sb.append(NS[i]+" ");
}
sb.append("\n");
sb.append(" " + StringUtils.repeat("-", board.length) + "\n");
等...
return sb.toString();
}
现在您的对象正确实现了toString(),您只需打印您的对象。
System.out.println(yourObject);
答案 1 :(得分:0)
我解决了我的问题。我创建了一个字符串,并使用基本相同的逻辑添加到它。
@Override
public String toString(){
StringBuilder table = new StringBuilder();
table.append(" ");
for (int i = 0; i < NS.length; i++) {
table.append(NS[i]);
table.append(" ");
}
for (int i = 0; i < board.length; i++) {
if (i % board.length == 0) {
table.append("\n");
for (int a = 0; a < 4; a++){
table.append(" ");
}
for (int a = 0; a < board.length * 2; a++) {
table.append("-");
}
}
}
table.append("\n");
for (int j = 0; j < board.length; j++) {
if (j % board.length == 0) {
for (int r = 0; r < board.length; r++) {
table.append(WE[r]);
table.append(" | ");
for (int c = 0; c < board[r].length; c++) {
table.append(board[r][c]);
table.append(" ");
}
table.append("| ");
table.append(EW[r]);
table.append("\n");
}
}
}
for (int i = 0; i < board.length; i++) {
if (i % board.length == 0) {
for (int a = 0; a < 4; a++){
table.append(" ");
}
for (int a = 0; a < board.length * 2; a++) {
table.append("-");
}
}
}
table.append("\n");
table.append(" ");
for (int i = 0; i < SN.length; i++) {
table.append(SN[i]);
table.append(" ");
}
return table.toString();
}