编辑:我添加了一个新的部分来捕获fileexception错误
这是一个pincheck计划。我应该使用以下行创建一个txt文件:
彼得,1212
约翰,1234年 玛丽,0000
然后我必须编写一个java程序来提示用户输入txt文件的文件路径,然后输入他们的名字和密码。我能够编译我的代码但是当我输入正确的名称和引脚时,我没有得到预期的结果。
import java.util.*;
import java.io.*;
public class PINCheck {
public static void main(String[]args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter file path: ");
String filepath = s.nextLine();
File passwordFile = new File(filepath);
System.out.print("Enter name: ");
String name = s.nextLine();
System.out.print("Enter password: ");
String password = s.nextLine();
try {
Scanner sc = new Scanner(passwordFile);
while (sc.hasNext()) {
if (password.matches(".*[a-zA-Z]+.*")) {
System.out.println("You have entered a non-numerical PIN!");
} else if (sc.hasNext(name) && sc.hasNext(password)) {
System.out.println("You have logged in successfully.");
}else {
System.out.println("Login Failed.");
}
break;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
这一行:Scanner sc = new Scanner("passwordFile");
表示Scanner将从构造函数中指定的String进行扫描,而不是实际文件。
改为使用Scanner sc = new Scanner(passwordFile);
。
File passwordFile = new File("filepath");
的类似错误。
像File passwordFile = new File(filepath);
在这两种情况下,都要传递变量,而不是字符串。