Строка не содержит не работает должным образом в Java - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу проверить часть скобки ниже строки.Если часть скобки содержится в строке, то «Container» должно быть напечатано.Но в моем случае это печать «Не содержит».

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);
}

1 Ответ

0 голосов
/ 25 сентября 2018
if ((!synonym.contains("generic term")) || (!synonym.contains("similar term"))
(!synonym.contains("related term")) || (!synonym.contains("antonym")))

Будет истинным, если synonym не содержит всех этих терминов.(Поскольку условие ||. То есть, даже если оно содержит одно, оно не будет содержать одно из других, в результате чего одно из условий оценивается как истинное.)

Чтобы исправить это, используйте &&:

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