!contains()方法?那可能吗?

时间:2014-08-29 23:36:56

标签: java regex

我知道通过使用contains,您可以检查String是否包含某些单词或其他内容。但是有一个!包含方法吗?例如,我希望它检查字符串以查看它是否包含单词“like”,但我也希望它检查它是否包含单词“not”。那可能吗?

if (text.contains("like")&&text.!contains("not")){
System.out.println("Is that a trick question? Yes.");
x = 1;}

2 个答案:

答案 0 :(得分:6)

你的语法很接近。就是这样,

String text = "like yes";
if (text.contains("like") && !text.contains("not")) {
    System.out.println("like yes");
}
text = "like not";
if (text.contains("like") && !text.contains("not")) {
    System.out.println("like not");
}

输出

like yes

答案 1 :(得分:1)

!是一元运算符,就像用于计算数字负数的一元-一样。要使用它,您需要编写一个值为boolean(或Boolean)并将!放在其前面的表达式;你可能不得不把表达式括在括号中。

text.contains("not")是一个表达式。具体来说,它是一个返回boolean的方法调用。并且返回值的方法调用是表达式。因此,要获得表达式的反函数,请将!放在其前面。

有时您必须使用括号来获得正确的分组,例如

!(text.length() == 0 || text.contains("abc"))

检查一个或另一个是否为真,然后如果任一部分为真,则给出false。你可以写

!(text.contains("not"))

但没有必要。

但要记住的关键是!是一个运算符,你可以像其他运算符一样使用它。如果你记得的话,你不应该对它放在哪里感到困惑。