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

时间:2014-05-14 06:07:12

标签: java string contains

我有以下代码。

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

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

3 个答案:

答案 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。