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。