如何在一行而不是序列中打印数组值

How to print Array Values on one line, not in a sequence

这是我来自斯坦福大学的 "Art and Science of Java" 书的第 10 章第 10 题(我是一名全职医生,在业余时间使用 Java 自学编程方法的介绍[Python是我未来医学研究项目的真正目标],所以我是一个该死的初学者)。我在编程方面没有导师,我需要你的帮助。

练习:输入一个字符串到数组中。我解决了数组填充的问题

问题:我用数据填充了我的二维数组,没问题,但我如何连续打印数组的结果,使它看起来像跳棋盘? "b" 代表棋盘一半的 "black" 个跳棋。

输出应该是:

 b b b b 
b b b b
 b b b b
etc....

我的所有 p 最终都打印在 1 列中,而不是连续打印,这是输出和我的问题:

b

b

b

b

b

等...

我的代码:

public void run() {
setFont("Helvetica-40");

displayCheckerboard(setBoard());    

}

private String[][] setBoard() {


for (int row = 0; row<8; row++) {

for (int col =0; col<8; col++) {

    if (row == 0 && col %2 ==0) {

     cBoard[row][col]= "  ";

        } else if (row==0 && col%2!=0) {
        cBoard[row][col]= "b";

        }else if (row==1 && col %2!=0) {
                cBoard[row][col]= "  ";
        }  else if (row==1 && col%2==0) {
            cBoard[row][col]= "b";

        } else if (row ==2&& col%2 !=0) {
            cBoard[row][col]= "b";
        } else if( row == 2 && col%2 ==0) {
                cBoard[row][col]= "  ";
        } else if (row ==3&& col%2 ==0) {
            cBoard[row][col]= " -";
        } else if( row == 3 && col%2!=0) {
                cBoard[row][col]= "  ";
        }
        //....continue here if code works...
    }

}
return cBoard;
}

private void displayCheckerboard(String board[][]) {

for (int row=0; row<8; row++) {
    for (int col=0;col<8; col++) {
        print(board[row][col]);

    }

    }

}

String cBoard[][] = new String[8][8];

}

这个想法是在打印完字符串后将所有值保存在字符串变量中。对于每个内循环迭代,您获得的值将附加到字符串变量 str。 这样就可以了。

String str ="";

for (int row=0; row<8; row++) {
    for (int col=0;col<8; col++) {
        str += "  "+board[row][col];
    }
     print(str); // prints values in row
}

您可能正在使用 System.out.println() ,它会在您每次调用时打印一个新行。如果你想打印多次而不为每个字符串换行使用 System.out.print() 这样你就可以把你的程序写成

for (int row=0; row<8; row++) {
for (int col=0;col<8; col++) {
    System.out.print(board[row][col]);
    }
System.out.println()     //go to next line after every row
}