Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何显示数组元素?_Java_Arrays - Fatal编程技术网

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