获取索引时需要EqualIgnoreCase

时间:2013-07-04 07:32:50

标签: java android

String s ="Ganesh";

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

当我运行此功能时,-1获得s.indexOf("ga")0获得s.indexOf("Ga")

我希望两者都获得0

如何实现这一目标?

4 个答案:

答案 0 :(得分:2)

不幸的是,没有indexOfIgnoreCase()方法,但使用toLowerCase()可以达到相同的效果。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

在您使用toLowerCase()之前,

使用toUpperCase()类的StringindexOf()方法。

答案 3 :(得分: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