if字符串包含语句中的Java OR运算符

我有以下代码。

for (String str5 : verticesposition2) { if(!str5.contains(("Vertex")||("Name")||("Transmittance")) { System.out.println(str5); } } 

如上所示,如果字符串不包含Vertex,Name或Transmittance,我希望它打印出来。 但是我得到编译错误说|| 对于参数类型,运算符未定义。 我对编程比较陌生,所以我不确定这是什么意思,有人能指出如何修复我的代码的正确方向?

|| 运算符适用于各个布尔项,而不是提供一堆不同的参数。

 if((!str5.contains("Vertex")||!str5.contains("Name")||!str5.contains("Transmittance")){ 

Java没有这样的语法,但您可以将“或”放在正则表达式中:

 if (!str5.matches(".*(Vertex|Name|Transmittance).*")) { 

请注意,java的matches() (与许多其他语言不同)必须匹配整个字符串才能返回true,因此在正则表达式的每一端都有.*

尝试使用此代码

  public static void main(String[] args) { List verticesposition2 = new ArrayList(); verticesposition2.add("safdsfVertex"); verticesposition2.add("safdsfNamesfsd"); verticesposition2.add("notCONTAINS"); for (String str5 : verticesposition2){ if(!(str5.contains("Vertex")||str5.contains("Name")||str5.contains("Transmittance"))){ System.out.println(str5); } } } 

输出:

notCONTAINS

如果速度不重要 – 使用regexp。