我想检查下面字符串的括号部分。如果括号部分包含在字符串中,则应打印“包含”。但就我而言,它正在打印“不包含”。

String synonym = "security (generic term)"

synonym = synonym.replaceAll("\\p{P}","");

if ((!synonym.contains("generic term")) || (!synonym.contains("similar term"))
    (!synonym.contains("related term")) || (!synonym.contains("antonym"))) {
    System.out.println("Not Contain);
} else {
    System.out.println("Contain);
}

最佳答案

if ((!synonym.contains("generic term")) || (!synonym.contains("similar term"))
(!synonym.contains("related term")) || (!synonym.contains("antonym")))


除非synonym包含所有这些术语,否则它将为true。 (因为||条件。即,即使它确实包含一个条件,也不会包含其他条件之一,从而使其中一个条件的值为true。)

要解决此问题,请使用&&

if ((!synonym.contains("generic term")) && (!synonym.contains("similar term"))
(!synonym.contains("related term")) && (!synonym.contains("antonym")))

10-02 04:44