Eu tenho dois 'String', 'str1' e 'str2'. Como posso verificar se a str2
está contida dentro da str1
, ignorando o caso?
Você pode utilizar o método toLowerCase()
:
public boolean contains( String haystack, String needle ) {
haystack = haystack == null ? "" : haystack;
needle = needle == null ? "" : needle;
// Works, but is not the best.
//return haystack.toLowerCase().indexOf( needle.toLowerCase() ) > -1
return haystack.toLowerCase().contains( needle.toLowerCase() )
}
Então chama-lhe usar:
if( contains( str1, str2 ) ) {
System.out.println( "Found " + str2 + " within " + str1 + "." );
}
Observe que, ao criar o seu próprio método, você pode reutilizá-lo. Então, quando alguém aponta que você deve utilizar contém' em vez de
indexOf', você tem apenas uma única linha de código para mudar.
I'd utilizar uma combinação do método contains e o método toUpper
que fazem parte da classe String. Um exemplo está abaixo:
String string1 = "AAABBBCCC";
String string2 = "DDDEEEFFF";
String searchForThis = "AABB";
System.out.println("Search1="+string1.toUpperCase().contains(searchForThis.toUpperCase()));
System.out.println("Search2="+string2.toUpperCase().contains(searchForThis.toUpperCase()));
Isto vai voltar:
Search1=true
Search2=falso