gpt4 book ai didi

java - 检查 HashMap 中是否已存在某个值,如果存在则允许用户输入有效值

转载 作者:行者123 更新时间:2023-12-01 21:43:33 25 4
gpt4 key购买 nike

我创建了一个小片段来说明我的问题。如果我输入其中一个用户名,第一个检查能够确定该用户已经存在。但第二个输入能够绕过检查。我怎样才能确保没有人可以绕过它?

public static void main(String[] args) {
HashMap<String, String> uID = new HashMap<>();
Scanner scan = new Scanner(System.in);
String input = null;
uID.put("James", "25");
uID.put("Jack", "25");
uID.put("John", "25");

System.out.println("Enter your username and age");

input = scan.nextLine();
if (uID.containsKey(input)) {

System.out.println("Username already exist, choose another username.");
input = scan.nextLine();
uID.put(input, "25");

}
}

最佳答案

if 语句检查单个条件,然后运行代码块内的代码if 满足该条件。 while 语句是下一个级别。它将检查条件(在您的情况下,键是否在映射中),然后如果条件为真则运行其中的代码。运行代码后,它会再次检查条件,并会一遍又一遍地执行此操作,直到条件不再为真为止。也就是说,它在条件为真时运行该 block 内的代码 - 他们的输入已在 map 中。

使用 while loop检查 key 是否无效,并强制用户继续输入值,直到输入有效的值。在验证之前不要更新 map 值:

public static void main(String[] args) {
Map<String, String> uID = new HashMap<>();
Scanner scan = new Scanner(System.in);
String input = null;
uID.put("James", "25");
uID.put("Jack", "25");
uID.put("John", "25");

System.out.println("Enter your username and age");

input = scan.nextLine();
while (uID.containsKey(input)) {

System.out.println("Username already exist, choose another username.");
input = scan.nextLine();
}

uID.put(input, "25");
}

关于java - 检查 HashMap 中是否已存在某个值,如果存在则允许用户输入有效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36170368/

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