0
String s ="Ganesh";

System.out.println(""+s.indexOf("ga"));
System.out.println(""+s.indexOf("Ga"));

これを実行すると、 -1fors.indexOf("ga")0forが得られますs.indexOf("Ga")

0両方ゲットしたいです。

これを達成する方法は?

4

4 に答える 4

2

残念ながら、indexOfIgnoreCase()方法はありませんが、 を使用して同じことを実現できますtoLowerCase()

System.out.println(""+s.toLowerCase().indexOf("ga"));
于 2013-07-04T07:34:34.353 に答える
1

を使用する前に、 クラスのtoLowerCase()またはtoUpperCase()メソッドを使用してください。StringindexOf()

于 2013-07-04T07:35:59.830 に答える
1

を使用するときに、探している文字列を小文字または大文字に変換できます。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
于 2013-07-04T07:37:26.660 に答える
1

大文字と小文字をindexOf区別しないようにするには、最初に文字列を小文字に変換します。

System.out.println("" + s.toLowerCase().indexOf("ga".toLowerCase()));
System.out.println("" + s.toLowerCase().indexOf("Ga".toLowerCase()));
于 2013-07-04T07:35:37.410 に答える