Java OR operator in if string contains statement

2019-02-26 04:05发布

I have the following code.

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

As you can see above if the string does NOT contain Vertex, Name or Transmittance I want it to print out. However Im getting a compilation error saying that the || operator is undefined for the argument types. I'm relatively new to programming so Im not sure what this means could someone kindly point in the right direction on how to fix my code?

3条回答
smile是对你的礼貌
2楼-- · 2019-02-26 04:46

try to use this code

 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);
            }
        }
    }

Output:

notCONTAINS

if speed isn't critical -- use those with regexp.

查看更多
虎瘦雄心在
3楼-- · 2019-02-26 04:48

The || operator works on individual boolean terms, not to provide a bunch of different arguments.

if((!str5.contains("Vertex")||!str5.contains("Name")||!str5.contains("Transmittance")){
查看更多
4楼-- · 2019-02-26 04:51

Java doesn't have a syntax like that, but you can put the "or" in a regex:

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

Note that java's matches() (unlike many other languages) must match the whole string to return true, hence the .* at each end of the regex.

查看更多
登录 后发表回答