java - 带有加号字符的字符串匹配方法返回 false

标签 java string if-statement

我遇到了 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+等)时,问题出现了,它发现它无效并退出程序。但是,根据代码,情况并非如此。

最佳答案

+- 在正则表达式中具有特殊含义,因此要将它们实际作为模式的一部分进行查找,您需要像这样对它们进行转义:\\+

See here

关于java - 带有加号字符的字符串匹配方法返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091776/

相关文章:

javascript - 检查JavaScript中的元素不在数组中?

java - Maven java maven-antrun-plugin

java - java画圆和长方形

java - Spring Data JPA - 注入(inject)失败 - BeanCreationException : Could not autowire field

c - 在C中逐字符读取字符串

python - 替换文本中匹配的字符串

iphone - 如何将数据写入plist

java - 递归如果/否则

java - JDBC 的 Connection 和 Statement 对象是按引用传递还是按值传递?

javascript - 如果数字在数字部分中