如何显示数组元素?

时间:2017-10-31 22:45:42

标签: 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("+");
      }
      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();

但是在董事会中,我目前有空位,我希望能够接受输入。

例如,如果

char [][] b={{'',' x',' ',},{' ','s','t '},{'o','o',' '}};
 Board(a);

然后我不想只有空格,而是希望对应于数组的元素去那里。我在我的代码上标记了我认为可能会这样做的地方。我不知道任何特殊的方法,但可能 DeepArray 到字符串等。 我理解如何使用Arrays.ToString导入,问题在于索引。

1 个答案:

答案 0 :(得分:1)

作为mentioned in a comment,你几乎就在那里:
print(" ")替换为print(array[i/2][j/2])

然后,在修复调用方法的两行代码中的错误后,将使代码打印正确输出:

char[][] b={{' ','x',' '},
            {' ','s','t'},
            {'o','o',' '}};
Board(b);

输出

+-+-+-+
| |x| |
+-+-+-+
| |s|t|
+-+-+-+
|o|o| |
+-+-+-+

要跟进comment by @markspace,您的代码可以简化为:

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);
    }
}

代码使用StringBuilder在打印之前在内存中构建整行,例如所以它只需要构建一次行分隔符行。

它还使用增强的for循环来保持代码更简单。

我还修改了方法名称。 Java命名约定是方法名称以小写字母开头,通常应该以动词开头,因为该方法实际上是为了某事。