0

我想知道如何获取键盘输入并将其保存为变量,以便可以将其与下面的代码一起使用。

代码:

public void readMaze(){
    Scanner reader = null;
    try {           
        reader = new Scanner(new FileReader("Maze.txt"));
        colSize = reader.nextInt();
        rowSize = reader.nextInt();
        finishRow = reader.nextInt();
        finishCol = reader.nextInt();
        startRow = reader.nextInt();
        startCol = reader.nextInt();

我不想拥有“Maze.txt”,而是希望在每次运行程序时都有一个变量,这样当我想使用不同的文件时,我就不必继续编辑程序了。

4

3 回答 3

2

您可以使用扫描仪本身捕获文件名:

System.out.println("Please input the file name to use: ");
Scanner reader = new Scanner(System.in);
String fileName = reader.next();

然后像往常一样继续你的方法,为一个新的 Scanner 对象重用相同的 Scanner 变量,这次传递你之前捕获的文件名:

try {           
    reader = new Scanner(new FileReader(fileName));
    ...
}

有了这个,您将能够在程序运行时动态更改文件名。

于 2013-04-27T00:40:16.123 回答
1

您可以尝试通过控制台扫描它们并将它们从字符串更改为整数。

public static void main(String[] args) {

    int colSize, rowSize, finishRow, finishCol, startRow, startCol = 0;

    // note, through console

    Scanner in = new Scanner(System.in);

    System.out.print("Enter colSize:");
    colSize = Integer.parseInt(in.nextLine());

    System.out.print("Enter rowSize:");
    rowSize = Integer.parseInt(in.nextLine());

    System.out.print("Enter finishRow:");
    finishRow = Integer.parseInt(in.nextLine());

    System.out.print("Enter finishCol:");
    finishCol = Integer.parseInt(in.nextLine());

    System.out.print("Enter startRow:");
    startRow = Integer.parseInt(in.nextLine());

    System.out.print("Enter startCol:");
    startCol = Integer.parseInt(in.nextLine());
    }
}
于 2013-04-27T00:45:12.460 回答
1

我可能会使用命令行参数:

public static void main(String[] args)
{
    final String mazeFilename = args[0]; // perhaps check if args.length > 0
    ...
}

然后

java YourPrgm Maze.txt
于 2013-04-26T23:39:24.180 回答