String s ="Ganesh";
System.out.println(""+s.indexOf("ga"));
System.out.println(""+s.indexOf("Ga"));
これを実行すると、 -1fors.indexOf("ga")と0forが得られますs.indexOf("Ga")
0両方ゲットしたいです。
これを達成する方法は?
残念ながら、indexOfIgnoreCase()方法はありませんが、 を使用して同じことを実現できますtoLowerCase()。
System.out.println(""+s.toLowerCase().indexOf("ga"));
を使用する前に、 クラスのtoLowerCase()またはtoUpperCase()メソッドを使用してください。StringindexOf()
を使用するときに、探している文字列を小文字または大文字に変換できます。indexOfこれにより、大文字と小文字に関係なく、常に正しいインデックスを取得できます。
String s = "Ganesh";
String s2 = "ga";
String s3 = "Ga";
System.out.println(s.toLowerCase().indexOf(s2.toLowerCase()));
System.out.println(s.toLowerCase().indexOf(s3.toLowerCase()));
> 0
> 0
次のように独自のメソッドに入れることもできます。
public int indexOfIgnoreCase(String s, String find) {
return s.toLowerCase().indexOf(find.toLowerCase());
}
次に、次のように使用できます。
String s = "Ganesh";
System.out.println(indexOfIgnoreCase(s, "ga"));
System.out.println(indexOfIgnoreCase(s, "Ga"));
> 0
> 0
大文字と小文字をindexOf区別しないようにするには、最初に文字列を小文字に変換します。
System.out.println("" + s.toLowerCase().indexOf("ga".toLowerCase()));
System.out.println("" + s.toLowerCase().indexOf("Ga".toLowerCase()));