2009-03-26 9 views

Antwort

11

einen regulären Ausdruck verwenden und sie als Fall markiert unempfindlich:

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

Die schaltet Groß- und Kleinschreibung und die * an jedem Ende des Suchbegriffs Spiels (i?). alle umgebenden Zeichen (seit String.matches funktioniert auf die gesamte Zeichenfolge).

+2

Ich liebe Regexes, aber es ist ein bisschen Overkill in diesem Fall – siukurnin

+0

@CoverosGene, als ich diesen Code zu einer Suche hinzugefügt Spalte in meiner Jtable dann funktioniert dieser Code perfekt, aber hat ein Problem, dass anstelle der Suche die obersten Elemente von String Bit sucht die meisten Elemente zuerst? Kannst du mir sagen, was ich falsch mache ??? –

31

String.indexOf(String)

Für einen Fall unempfindlich Suche, sowohl toUpperCase oder toLowerCase auf der Original-Zeichenkette und der Teilkette vor dem indexOf

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

+1 und ich lösche meine Antwort. Dein ist besser für beide Teile der Frage. –

+0

Natürlich, wenn Sie vorhaben, viele Vergleiche zu machen vergessen Sie nicht, eine obere verkleinerte Version der am meisten verwendeten Zeichenfolge zu speichern – siukurnin

3

Sie verwenden indexOf können() und toLowerCase() Fall zu tun -unempfindliche Tests für Teilstrings.

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);