将键盘输入保存为变量

时间:2013-04-26 23:14:18

标签: java input keyboard

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

代码:

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"我想在那里有一个变量,每次运行程序都可以改变,所以当我想使用不同的文件时,我不必继续编辑程序。

3 个答案:

答案 0 :(得分: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));
    ...
}

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

答案 1 :(得分:1)

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

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

然后

java YourPrgm Maze.txt

答案 2 :(得分: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());
    }
}