我创建了一个小片段来说明我的问题。如果我要输入其中一个用户名,第一个检查就可以确定用户已经存在。但第二个输入可以绕过检查。我该怎么做才能确保没有人能绕过它?检查散列表中是否已经存在一个值,并允许用户输入有效值(如果有)
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");
}
}
使用while循环,而不是'if' –
如果用户按照您的指示,那么它永远不会起作用,因为'詹姆斯25'的(用户名**和**的年龄,像你说的输入)输入时, 'input'的值将是'“James 25”',并且这不是地图中的*键*。 – Andreas
但是,积极的一点是,无论你说自己多大年纪,计算机都会认为你是25岁。我的妻子喜欢这个想法。 – ajb