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?

Était-ce utile?

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

Autres conseils

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top