我遇到了 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+等)时,问题出现了,它发现它无效并退出程序。但是,根据代码,情况并非如此。
最佳答案
+
和 -
在正则表达式中具有特殊含义,因此要将它们实际作为模式的一部分进行查找,您需要像这样对它们进行转义:\\+
关于java - 带有加号字符的字符串匹配方法返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091776/