IF-ELSE迭代:String.contains()每次都失败

时间:2014-04-30 07:25:58

标签: java if-statement

我只是希望它遍历我的arraylist并在找不到用户时显示一次,或者如果找到用户则显示一次。

我的代码工作正常。

就是这样,我可以把它作为我的users.txt有3个用户。

username:password:number
test1:pass1:123
test2:pass2:456
test3:pass3:789

所以当我使用这段代码并遍历我的arraylist

for (Users u: userDetails) {
    if (!u.getUser().toLowerCase().contains(userName.toLowerCase())) {
        System.out.println("Does not exist");
    } else {
        System.out.println("Exist");
    }
}

以上代码重复3次"不存在"如果我输入无效的用户名。任何人都可以启发我吗?

2 个答案:

答案 0 :(得分:3)

您可以使用标志变量:

boolean userExists = false; // flag

for (Users u: userDetails) {
    if (u.getUser().toLowerCase().contains(userName.toLowerCase())) {
        System.out.println("Exist");
        userExists = true; // update flag
    }
}

// check if user doesn't exist
if (!userExists)
    System.out.println("Does not exist");

答案 1 :(得分:3)

你可以这样试试:

public static void checkUserExistence(Collection<Users> userDetails) {
    for (Users u: userDetails) {
        if (u.getUser().toLowerCase().contains(userName.toLowerCase())) {
            System.out.println("Exist");
            return;
        }
    }
    System.out.println("Does not exist");
}