扫描程序 - Java中的char矩阵

时间:2018-03-20 18:34:43

标签: java matrix java.util.scanner

我刚刚开始学习这门语言,我在尝试从用户输入创建一个char类型的Matrix时遇到了问题。

例如,我想将此作为我的输入:

3 // this is an int n that will give me a square matrix[n][n]
.#.
###
.#.

对于这个例子,这就是我所拥有的:

//...
Scanner stdin = new Scanner(System.in);

int n = stdin.nextInt();
char[][] matrix = new char[n][n]

for(int i = 0; i < n; i++){
  matrix = stdin.nextLine();
}

显然这是错的,我知道。我没有看到正确读取此输入的方法。 如果有人能帮助我,我会很感激。

ps:如果可能的话,保持简单,因为就像我说的那样,我刚开始学习java:)

4 个答案:

答案 0 :(得分:1)

首先,您需要在阅读stdin.nextLine();后添加n以跳过新的换行符。

其次,这是你在循环中所需要的:

matrix[i] = stdin.nextLine().toCharArray();

这将读取下一行并将其转换为字符数组。

答案 1 :(得分:0)

这是带输出的问题的可运行版本

import javafx.application.Application;
import javafx.stage.Stage;

import java.util.Arrays;
import java.util.Scanner;

public class MainNoFXML extends Application {

    @Override
    public void start(Stage stage) {
        System.out.println("Enter Matrix Size:");
        Scanner stdin = new Scanner(System.in);

        int n = stdin.nextInt();
        char[][] matrix = new char[n][n];

        stdin.nextLine();

        for(int i = 0; i < n; i++) {
            System.out.println("Enter "+n+" Number of Chars");
            System.arraycopy(stdin.nextLine().toCharArray(), 0, matrix[i], 0, n);
        }

        System.out.println("\nYour Matrix:");
        for(int i = 0; i < n; i++)
            System.out.println(Arrays.toString(matrix[i]));
    }

    public static void main(String[] args) { launch(args); }
}

输出:

Enter Matrix Size:
3
Enter 3 Number of Chars
.#.
Enter 3 Number of Chars
###
Enter 3 Number of Chars
.#.

Your Matrix:
[., #, .]
[#, #, #]
[., #, .]

答案 2 :(得分:0)

首先,谢谢你的所有答案。 我给老师发了电子邮件,这是他给我的解决方案,如果有人想知道:

Scanner stdin = new Scanner(System.in);

int n = stdin.nextInt();
stdin.nextLine();

char[][] matrix = new char[n][n]

for(int i = 0; i < n; i++){
  String line = stdin.nextLine();
  for(int j = 0; i < n; j++){
    matrix[i][j] = line.charAt(j);
 }
}

答案 3 :(得分:-1)

参见代码示例:

public class MatInput {
public static void main(String[] args) {
  int matX = 3; 
     int matY = 3;

     String matrix [][]=new String[matX ][matY];

             Scanner input = new Scanner(System.in);
             System.out.println("enter the strings for the Matrix");
              for(int row=0;row<matX;row++){
                 for(int col=0;col<matY;col++){
                     matrix[row][col]=input.nextLine();
             }
                 System.out.println("");
         }

              for(int r=0;r<matrix.length; r++) {
                  for (int c=0; c<matrix [r].length; c++) {
                      System.out.print(matrix [r][c] + "  ");
                  }          
                  System.out.println("");
              }

              input.close();
  }
}