如何在一行而不是序列中打印数组值
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
}
这是我来自斯坦福大学的 "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
}