java - Java 扫描器类从文本文件中读取制表符分隔的字符串
问题描述
我是一名学习 Java 编码的学生。我正在尝试检查文本文件中的用户名和密码。如果文本文件包含用户名,则接下来的 3 个字段将分配给变量。
文本文件有 4 个制表符分隔的字段和 5 个唯一行。
如果我从文本文件的第一行输入用户名和密码,那么我可以获得布尔值以返回 true。如果我输入任何其他用户名或密码,布尔值将保持为假。我使用 print 方法,可以看出 while 循环遍历整个文件。
我试图弄清楚为什么文本文件的其他行没有与用户名或密码变量进行比较。
我的代码:
while (inFS.hasNext() && !userGood && !passGood) {
credString = inFS.next();
System.out.println(credString);
if (userName.equals(credString)) {
userGood = true;
System.out.println("*****userGood TRUE");
encryptedPass = inFS.next();
unencryptedPass = inFS.next();
userRole = inFS.next();
if (sb.toString().equals(encryptedPass)){
passGood = true;
System.out.println("*****passGood TRUE");
break;
}
}
}
解决方案
问题是 next() 方法不会跳过一行,因此您应该在进行下一个 while 迭代之前调用 nextLine()。
推荐阅读
- javascript - 根据后端的响应显示错误消息
- git - Gitlab 外部项目成员能够推送存储库
- firebase - 将颤振与firebase连接的最佳实践是什么?
- pandas - 将客户组的值写入系列
- automation - 如何修复 types.ArgumentError:参数 1:
:预期 LP_POINT 实例而不是指向 POINT 的指针? - flutter - 在后台运行代码(当我锁定手机屏幕时)
- multiplayer - 虚幻引擎 4 上的 TravelFailure
- react-native - 我无法使用 Fetch 的方法从 react-native 访问 JSON.server 中的数据
- python - 使用python pandas将列中的动态超链接替换为null
- visual-studio-code - VS Code 中的 Markdown 围栏/代码块背景突出显示