我有以下代码。
for (String str5 : verticesposition2) {
if(!str5.contains(("Vertex")||("Name")||("Transmittance")) {
System.out.println(str5);
}
}
如上所示,如果字符串不包含Vertex,Name或Transmittance,我希望它打印出来。但是我得到编译错误说||对于参数类型,运算符未定义。我对编程比较新,所以我不确定这意味着什么可以指出如何修复代码的正确方向?
答案 0 :(得分:16)
Java没有这样的语法,但你可以把"或"在正则表达式中:
if (!str5.matches(".*(Vertex|Name|Transmittance).*")) {
请注意,java matches()
(与许多其他语言不同)必须与整个字符串匹配才能返回true,因此正则表达式每端的.*
答案 1 :(得分:4)
||运算符适用于各个布尔项,而不是提供一堆不同的参数。
if((!str5.contains("Vertex")||!str5.contains("Name")||!str5.contains("Transmittance")){
答案 2 :(得分:1)
尝试使用此代码
public static void main(String[] args) {
List<String> verticesposition2 = new ArrayList<String>();
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。