gpt4 book ai didi

java - 从文件读取时如何修复仅检查数组最后一行的用户名和密码

转载 作者:行者123 更新时间:2023-12-02 10:01:17 24 4
gpt4 key购买 nike

我正在从 csv 文件中读取用户名,格式为

admin1, apple,  admin
staff1, orange, staff

staff1 位于新行,无论我有多少行,登录时只会检查最后一行。

        AtomicBoolean found = new AtomicBoolean(false);

btnLogin.setOnAction(e -> {
while (in.hasNextLine()) {


String s = in.nextLine().replaceAll("\\s+", "");





if (name.equals(sArray[0]) && password.equals(sArray[1])) {
lMessage.setText("correct");
openMainForm();


} else if (name.equals("") || password.equals("")) {
lMessage.setText("Please enter a username and password");


} else {
lMessage.setText("Please enter valid credentials");



}




}


});

我希望如果在文件中找到用户名和密码组合,他们将能够登录,而不仅仅是用户名和密码是最后一次的情况

最佳答案

问题是您正在循环中设置操作。也就是说,为每一对创建一个操作对象,然后进行分配。因此,在最后一次迭代之后,操作将被设置为最新的对象,这显然是在检查最后一对用户名密码。

循环转换为类似的内容,

setOnAction(actionobject1 that checks for admin1, apple, admin)

setOnAction(actionobject2 that checks for staff1, orange, staff)

这有效地保留了最后创建的对象并仅检查最后一对

您可能想要修改您的逻辑,以便只有一个操作对象。然后检查有效的用户名-密码对。

类似这样的事情:

btnLogin.setOnAction(e -> {

while (in.hasNextLine() ) {
// check condition here
// don't forget to break when successful

}
in.close();
});

此外,请确保在找到成功的配对后中断循环。否则同样的事情也会发生。

关于java - 从文件读取时如何修复仅检查数组最后一行的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55613550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com