Java 如何在.txt文件中搜索字符串和哈希代码?(爪哇)
提示:我正在编写一个登录程序,要求用户输入用户名和密码。所有用户信息都存储在password.txt文件中,密码存储为哈希代码。如果用户输入的用户名无效或密码与条目中的哈希值不同,则程序应打印“登录失败”。如果用户输入的用户名有效且密码与条目中的哈希值相同,则程序应打印“登录成功” password.txt文件的设置如下:Java 如何在.txt文件中搜索字符串和哈希代码?(爪哇),java,java.util.scanner,bufferedreader,equals,readfile,Java,Java.util.scanner,Bufferedreader,Equals,Readfile,提示:我正在编写一个登录程序,要求用户输入用户名和密码。所有用户信息都存储在password.txt文件中,密码存储为哈希代码。如果用户输入的用户名无效或密码与条目中的哈希值不同,则程序应打印“登录失败”。如果用户输入的用户名有效且密码与条目中的哈希值相同,则程序应打印“登录成功” password.txt文件的设置如下: Real name:username:password_hash 问题:如何在.txt中搜索字符串和哈希代码? 这是我目前拥有的代码: public static v
Real name:username:password_hash
问题:如何在.txt中搜索字符串和哈希代码?
这是我目前拥有的代码:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sf = new Scanner("passwords.txt");
String Username;
String Password;
System.out.println("Login ");
System.out.println("Please Enter Username: ");
Username = sc.next();
System.out.println("Please Enter Password: ");
Password = sc.next();
String login = Username + ":" + Password.hashCode();
System.out.println(login);
while(sf.hasNextLine()){
if((login.equals(sf.nextLine().trim()))){
System.out.println("Login Successful!");
break;
}
if(!(login.equals(sf.nextLine().trim()))){
System.out.println("Login Unsuccessful!");
}
}
我试图在代码中搜索类似username:hashcodePassword的字符串
问题:代码既不打印if语句,也不打印if语句,在运行程序时出现此错误
错误:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at LoginApplication.main(LoginApplication.java:29)
简单解释:您的代码检查文件是否有下一行,因此它检查第一个嵌套的if,但在这里它从文件中读取一行,指向该文件的指针移动到下一行。然后它检查下一个if语句,在这里读取文件的另一行。 出现此问题是因为您实际上一次读取两行文件 解决办法是
while(sf.hasNextLine()) {
final String currentLine = sf.nextLine().trim();
if(login.equals(currentLine)){
System.out.println("Login Successful!");
break;
} else {
System.out.println("Login Unsuccessful!");
}
}
然后,如果您需要更多if语句,您可以使用currentLine变量,而不是读取另一行文件。将任务分解为几个小步骤,然后尝试一次一个地解决每个步骤--分而治之将帮助您成功。例如,尝试使用缓冲区简单地读取和打印文本文件eReader,并使用通过搜索和学习教程获得的帮助。其他步骤也一样。当您陷入更具体的步骤时,在您学习了相应的教程并尝试应用它们之后,您应该在此处提出更具体的问题。