我正在编写一个程序来比较几个字符与Char数组并返回数组的索引。有没有可能比较忽略情况的方法? 例如下面:
String in = "I AM A HAPPY BOY";
char[] cha = new char[] {a,c,e,g,i,k,h,m,o,q,s,u,w,y};
char testChar = in.substring(4,5).charAt(0);
for(int a = 0; a<char.length; a++){
if(cha[a] == testChar)
return a+1;
}
我无法获得索引,因为它总是指向0.无论如何都要忽略这里的情况?感谢一些建议。
答案 0 :(得分:5)
对两个字符使用Character.toLowerCase:
if (Character.toLowerCase(cha[a]) == Character.toLowerCase(testChar)) {
// logic here
}
作为旁注,如果数组中的所有字符都已小写,或者甚至在初始字符串上使用 toLowerCase ,则可以使用第一个 toLowerCase 。并避免两者。
答案 1 :(得分:2)
您可以使用Character.toLowerCase(char)
:
if (Character.toLowerCase(cha[a]) == Character.toLowerCase(testChar)) {
return a+1;
}
答案 2 :(得分:0)
在测试相等性之前使用Character.ToLowerCase(char c)
。
答案 3 :(得分:-1)
在= in.toLowerCase();
然而,在案例之间转换字符的最有效方法是翻转第6位(ASCII值相差32)。