0
String s ="Ganesh";

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

当我运行它时,我得到-1s.indexOf("ga")0s.indexOf("Ga")

我想0两者兼得。

如何做到这一点?

4

4 回答 4

2

不幸的是,没有indexOfIgnoreCase()方法,但是您可以使用toLowerCase().

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

要使用indexOf不区分大小写,您可以先将字符串转换为小写:

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

使用toLowerCase()或 类的toUpperCase()方法String,然后再使用indexOf().

于 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 回答