[英]Check if string exists in text file
我正在尝试编写一个方法,该方法检查给定的字符串是否存在于 a.txt 文件中,但似乎我的 if/else 语句无法正常工作。
public void ChcekIfPasswordExsists(String check) throws FileNotFoundException{
BufferedReader reader = new BufferedReader(new FileReader("Passwords.txt"));
Scanner fileScanner = new Scanner(reader);
while(fileScanner.hasNextLine()){
final String line = fileScanner.next();
if(line.contains(check)){
System.out.println("Password for " + check + " already exsits");
break;
}
else{
System.out.println(check + " is usable");
break;
}
}
}
这是我调用该方法的地方:
System.out.println("Enter the name of the app or website,\nwhere password is going to be use:");
useCase = s.nextLine();
ChcekIfPasswordExsists(useCase);
我看了无数其他的帖子,没有任何效果。 无论如何,似乎代码跳过了“if”语句,直接跳转到了“else”语句。
while
循环的逻辑应该是遍历文件中的所有行,直到找到匹配项或到达文件末尾。 考虑这个版本:
public void ChcekIfPasswordExsists(String check) throws FileNotFoundException {
BufferedReader reader = new BufferedReader(new FileReader("Passwords.txt"));
Scanner fileScanner = new Scanner(reader);
boolean flag = false;
while (fileScanner.hasNextLine()) {
final String line = fileScanner.next();
if (line.contains(check)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("Password for " + check + " already exsits");
}
else {
System.out.println(check + " is usable");
}
}
此外,我可能倾向于更改方法签名以返回 boolean 值(真/假)。 根据该返回值,您可以向控制台显示您想要的消息。
旁注:如果您实际上将明文密码存储在文本文件中,请立即停止这样做。 这是一个安全漏洞。 相反,设置一个适当的数据库,只存储一个不可逆的 hash 密码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.