2014-09-19 4 views
7

machen Ich habe eine einfache Frage. Wie mache ich Index in Java ohne Berücksichtigung der Groß- und Kleinschreibung. Diese Frage wurde bereits in einem Forum beantwortet, aber ich habe die Antwort nicht verstanden.wie man indexof case insensitive in java

Say für eg.I haben einen String s = Telefon (Conf) ich den Datensatz ziehen möchten, die (Conf) wie diese hat aber die Benutzer eingeben CONF oder conf oder Conf usw. So sollte mein Programm sein kann den Datensatz ziehen, wenn er das Wort conf auf jeden Fall findet.

if(s.indexOf("(")>-1&& s.indexOf("Conf")>-4 && s.lastIndexOf(")")>-1) 
{ 
    String s1=s.substring(s.indexOf("(Conf"),s.lastIndexOf(")")+1); 
    } 

kann mir jemand erklären pls? Der obige Code zieht es, wenn die Zeichenfolge nur (Conf) ist.

+0

möglich Duplikat von [indexOf Case Sensitive?] (Http://stackoverflow.com/questions/1126227/indexof-case-sensitive) – targumon

Antwort

8

Der sicherste Weg, es würde zu tun:

content.toLowerCase().indexOf(searchTerm.toLowerCase()), auf diese Weise Sie 2 mögliche Grenzfälle abzudecken, wenn der Inhalt in Kleinschreibung und der Suchbegriff sein kann wäre in Großbuchstaben oder beide wären Großbuchstaben.

+1

Dies funktioniert nicht für Unicode, die Längen von I und I sind unterschiedlich (Türkisch i mit Punkt) –

+0

Warum sollte das nicht funktionieren? Die Java-Zeichenfolge sollte wissen, wie mit Unicode umzugehen ist. – mbonnin

3

Eine gemeinsame Lösung:

yourString.toLowerCase().indexOf("foo");