Java 如何显示数组元素?
所以我试图写一个在游戏中填充棋盘的方法。我刚刚开始学习编程,所以我对特殊方法知之甚少Java 如何显示数组元素?,java,arrays,Java,Arrays,所以我试图写一个在游戏中填充棋盘的方法。我刚刚开始学习编程,所以我对特殊方法知之甚少 public static void Board(char[][] array){ for(int i=0; i<2*array.length+1; i++) { if(i %2 ==0){ for(int j=0; j<2*array.length+1;j++){ if(j%2==0){ System.out.print("+"); }
public static void Board(char[][] array){
for(int i=0; i<2*array.length+1; i++) {
if(i %2 ==0){
for(int j=0; j<2*array.length+1;j++){
if(j%2==0){
System.out.print("+");
}
else{
System.out.print("-");
}
}
}
else {
for(int j=0; j<2*array.length+1;j++){
if(j%2==0){
System.out.print("|");
}
else{
System.out.print(" "); // Maybe should use this spot to insert the x and o from the array.
}
}
}
System.out.println();
然后,我希望与数组对应的元素放在那里,而不是只有空的空格。我在代码上标记了我认为可以这样做的地方。我不知道有什么特殊的方法,但可能是DeepArray到string之类的。
我了解如何使用Arrays.ToString导入,问题在于索引 As,你就快到了:用
print(数组[i/2][j/2])
替换print(“”
)
在修复调用该方法的两行代码中的错误后,这将使代码打印正确的输出:
char[][] b={{' ','x',' '},
{' ','s','t'},
{'o','o',' '}};
Board(b);
输出
+-+-+-+
||x||
+-+-+-+
|| s | t|
+-+-+-+
|o | o ||
+-+-+-+
接下来,您的代码可以简化如下:
public static void printBoard(char[][] board) {
StringBuilder line = new StringBuilder();
for (int i = 0; i < board[0].length; i++)
line.append("+-");
String rowSeparatorLine = line.append('+').toString();
System.out.println(rowSeparatorLine);
for (char[] row : board) {
line.setLength(0); // clear
for (char cell : row)
line.append('|').append(cell);
System.out.println(line.append('|').toString());
System.out.println(rowSeparatorLine);
}
}
publicstaticvoid打印板(char[]]board){
StringBuilder行=新的StringBuilder();
对于(int i=0;i
该代码在打印之前使用一个函数在内存中构建一整行,例如,它只需构建行分隔符行一次
它还使用增强的for
循环来简化代码
我还修复了方法名。Java命名约定是指方法名称以小写字母开头,通常应该以动词开头,因为该方法实际上是为了做一些事情。如果您的目标是提供自定义格式,请详细说明您希望输出的外观。否则很难从你的代码中猜到,你就快到了。用
print(数组[i/2][j/2])
替换print(“”
)。虽然我确信Andreas是正确的,但您的代码在这一点上是完全疯狂的。即使一行中的字符数可能是数组元素的两倍,数组的索引也不应使用x
public static void printBoard(char[][] board) {
StringBuilder line = new StringBuilder();
for (int i = 0; i < board[0].length; i++)
line.append("+-");
String rowSeparatorLine = line.append('+').toString();
System.out.println(rowSeparatorLine);
for (char[] row : board) {
line.setLength(0); // clear
for (char cell : row)
line.append('|').append(cell);
System.out.println(line.append('|').toString());
System.out.println(rowSeparatorLine);
}
}