2009-03-26 16 views

Respuesta

11

utilizar una expresión regular y marcarla como entre mayúsculas y minúsculas:

if (myStr.matches("(?i).*template.*")) { 
    // whatever 
} 

El resulta en caso de falta de sensibilidad y de la * en cada extremo de la concordancia de los términos de búsqueda (i?). cualquier carácter circundante (desde String.matches funciona en toda la cadena).

+2

Me encantan las expresiones regulares pero es un poco exagerado en ese caso – siukurnin

+0

@CoverosGene cuando agregué este código para buscar uno Columna en mi jtable, este código funciona perfectamente, pero tiene un problema: ¿en lugar de buscar los elementos más altos de String bit, busca primero los elementos más abajo? ¿Puedes decirme qué mal estoy haciendo? –

31

String.indexOf(String)

Para una búsqueda que ignore, a toUpperCase o toLowerCase tanto en la cadena original y la subcadena antes de la indexOf

String full = "my template string"; 
String sub = "Template"; 
boolean fullContainsSub = full.toUpperCase().indexOf(sub.toUpperCase()) != -1; 
+0

+1 y borro mi respuesta. El tuyo es mejor para ambas partes de la pregunta. –

+0

Por supuesto, si planeas hacer muchas comparaciones, no te olvides de almacenar una versión con caja superior de la cadena más utilizada – siukurnin

3

Puede usar indexOf() y toLowerCase() para hacer caso -insensibles pruebas de subcadenas.

String string = "testword"; 
boolean containsTemplate = (string.toLowerCase().indexOf("template") >= 0); 
1
String word = "cat"; 
String text = "The cat is on the table"; 
Boolean found; 

found = text.contains(word); 
Cuestiones relacionadas