【发布时间】:2015-10-12 23:25:47
【问题描述】:
我遇到了 if 语句错误的问题。代码如下:
if (!firstGrade.matches("A+|A|A-|B+|B|B-|C+|C|C-|D+|D|D-|F") || !firstHonors.matches("n|h|ap")) {
System.out.println("Invalid");
System.exit(1);
}
if 语句检查 firstGrade 是否不等于一堆值,以及 firstHonors 是否不等于 n、h 和 ap。第二部分没有问题,只有firstGrade检查导致问题。
当我尝试输入一个带加号的值(A+、B+、C+ 等)时,会出现问题,它发现它无效并退出程序。但是,根据代码,情况并非如此。
【问题讨论】:
-
String#matches接受正则表达式。+是一个特殊字符。 -
问题标题具有误导性。
标签: java string if-statement