String s ="Ganesh";
System.out.println(""+s.indexOf("ga"));
System.out.println(""+s.indexOf("Ga"));
これを実行すると、 -1
fors.indexOf("ga")
と0
forが得られますs.indexOf("Ga")
0
両方ゲットしたいです。
これを達成する方法は?
残念ながら、indexOfIgnoreCase()
方法はありませんが、 を使用して同じことを実現できますtoLowerCase()
。
System.out.println(""+s.toLowerCase().indexOf("ga"));
を使用する前に、 クラスのtoLowerCase()
またはtoUpperCase()
メソッドを使用してください。String
indexOf()
を使用するときに、探している文字列を小文字または大文字に変換できます。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()));