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)
{
    final String mazeFilename = args[0]; // perhaps check if args.length > 0
    ...
}

それから

java YourPrgm Maze.txt
于 2013-04-26T23:39:24.180 に答える
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 に答える