2013-07-04 175 views
0
String s ="Ganesh"; 

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

时需要EqualIgnoreCase当我跑,我得到-1s.indexOf("ga")0s.indexOf("Ga")越来越指数

我想0两种。

如何实现这一目标?

回答

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 
2

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

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

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

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

我个墨水它的低箱..由于一些限制不能编辑 –

+0

@HarshavardhanKonakanchi感谢您的评论 –

1

使用toLowerCase()toUpperCase()方法String类的,你可以使用indexOf()之前。