Question

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?

Was it helpful?

Solution 2

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

OTHER TIPS

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.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top