我想知道如何接受键盘输入并将其保存为变量,以便我可以将其与下面的代码一起使用。
代码:
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"我想在那里有一个变量,每次运行程序都可以改变,所以当我想使用不同的文件时,我不必继续编辑程序。
答案 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());
}
}