Java OR operator in if string contains statement

11,744

Solution 1

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")){

Solution 2

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.

Solution 3

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.

Share:
11,744
Anton James
Author by

Anton James

A mechanical Engineer making things work more efficiently at work!

Updated on June 15, 2022

Comments

  • Anton James
    Anton James over 1 year

    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?