Если вы сопоставляете String
с определенным словом в Java, вы должны использовать equals()
. В этом случае вы хотите инвертировать соответствие, чтобы ваша логика стала:
if(!theString.equals("none")) {
// do stuff here
}
Гораздо меньше ресурсов и интуитивно понятнее.
Если вам нужно сопоставить строку, содержащую слово «none», вы, вероятно, ищете что-то вроде:
if(theString.matches("\\bnone\\b")) {
/* matches theString if the substring "none" is enclosed between
* “word boundaries”, so it will not match for example: "nonetheless"
*/
}
Или, если вы можете быть достаточно уверены, что «границы слов» означают определенный разделитель, вы все равно можете уклоняться от регулярных выражений, используя метод indexOf()
:
int i = theString.indexOf("none");
if(i > -1) {
if(i > 0) {
// check theString.charAt(i - 1) to see if it is a word boundary
// e.g.: whitespace
}
// the 4 is because of the fact that "none" is 4 characters long.
if((theString.length() - i - 4) > 0) {
// check theString.charAt(i + 4) to see if it is a word boundary
// e.g.: whitespace
}
}
else {
// not found.
}