public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
String word[] = { "apple" };
char wordguess[] = word[random.nextInt(word.length)].toCharArray();
int totalOfGuesses = wordguess.length;
char[] userGuess = new char[totalOfGuesses]; // save the users input
System.out.print("Please input your guess : ");
char input = scanner.nextLine().charAt(0);
}
如果输入有效或输入无效,如何检查用户输入? 然后,如果它有效,则将其存储在名为值的数组中 否则,将字符保存在名为invalid的数组中 感谢您的帮助
例如:
有效:_ _ _ _ _无效:_ _ _ _ _
请输入您的猜测:a
例如:
有效:a _ _ _ _无效:_ _ _ _ _
请输入您的猜测:a
例如:
有效:a _ _ _ _无效:b _ _ _ _
请输入您的猜测:b
例如:
有效:a _ _ _ _无效:b _ _ _ _
请输入您的猜测:b(不会再保存b)
答案 0 :(得分:0)
这很容易,你可以在谷歌上找到这个。始终检查您希望用户输入的时间:
if (input != null)
//store it
请记得检查您的扫描仪。
答案 1 :(得分:0)
制作一个set
并在其中添加所有无效字母。
在每个输入中,您必须遍历此集并检查输入char
是否是之前输入的。
此外,使用while
进行无限循环,直到用户输入有效的char
考虑这个简单的代码来解决部分问题,你必须继续......
此代码将继续从用户那里获取输入,直到他输入有效的char
。
public static void main(String args[]) {
try (Scanner scanner = new Scanner(System.in);) {
boolean invalidInput = true;
Set<Character> invalidChars = new HashSet<>(Arrays.asList('a', 'b', 'c', 'd'));
WhileLoop: while (invalidInput) {
System.out.print("Please input your guess (one letter): ");
String inputLine = scanner.nextLine();
if (inputLine == null || inputLine.trim().isEmpty() || !String.valueOf(inputLine.charAt(0)).matches("[a-zA-Z]")) {
System.out.println("Invalid input, Please enter a letter (A to Z).");
continue;
}
for (char c : invalidChars) {
if (inputLine.charAt(0) == c) {
System.out.println("Invalid latter, You have entered this letter before, choose another one.");
invalidChars.add(c);
continue WhileLoop;
}
}
invalidInput = false;
}
}
}