我正在尝试获取“y”、“Y”、“n”或“N”的有效输入。
如果输入无效(例如任何以“y”或“n”开头的单词),我希望它重新提示用户输入。
到目前为止我有:
while (again.charAt(0) != 'N' && again.charAt(0) != 'n' && again.charAt(0) !='Y' && again.charAt(0) != 'y' ) {
System.out.println ("Invalid Inpur! Enter Y/N");
again = numscan.next();
}
if (again.charAt(0)== 'N' || again.charAt(0) == 'n') {
active = false;
} else {
if (again.charAt(0)== 'Y' || again.charAt(0) == 'y'){
active = true;
random = (int) (Math.random () *(11));
}
}
我遇到的问题是,如果我输入任何以字母“y”或“n”开头的单词,它会将其视为有效输入(因为它是插槽 0 中的字符)。我需要帮助解决此问题,以便在用户输入以“y”或“n”开头的单词时重新提示他们。
谢谢!
最佳答案
假设 again
是一个包含完整用户输入的字符串,您可以使用:
while (!again.equals("N") && !again.equals("n") ...
.equals()
方法只有在整个 字符串匹配时才会匹配。
关于Java While 循环程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12789960/