我已经阅读了几篇文章但无法找到为什么我的代码无效。
我必须要求用户通过控制台输入一个字符串,格式如下。
[CapitalLeter] [号码]
字母必须是A,B,C,D,E或F,以及1到6之间的数字。
这是我的代码。
while ((x.length() != 2) || (x.charAt(0)>='F' && x.charAt(0)<='A') || (Character.getNumericValue(x.charAt(1))>=6 && Character.getNumericValue(x.charAt(1))<=1))
{
System.out.println(msg);
x = (new Scanner(System.in)).nextLine();
}
如果我以3F为例,它会接受它,而且它是错误的。
你能帮助我吗?
由于
答案 0 :(得分:1)
if (matchesFormat(input)) {
/* ok */
} else {
/* not ok */
}
使用辅助方法
boolean matchesFormat(String input) {
return input.matches("[A-F][1-6]");
}
答案 1 :(得分:0)
我正在使用&amp;&amp;当我应该使用||时,修复。
由于