1

我正在编写一个程序来比较几个字符与一个字符数组并返回数组的索引。有没有办法比较忽略大小写?例如下面:

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。这里有没有忽略大小写?欣赏一些建议。

4

4 回答 4

5

对两个字符使用 Character.toLowerCase:

if (Character.toLowerCase(cha[a]) == Character.toLowerCase(testChar)) {
    // logic here
}

作为旁注,如果数组中的所有字符都已经是小写,则可以使用第一个 toLowerCase ,或者甚至在初始字符串上使用toLowerCase避免两者。

于 2013-04-02T19:16:07.100 回答
2

您可以使用Character.toLowerCase(char)

if (Character.toLowerCase(cha[a]) == Character.toLowerCase(testChar)) {
   return a+1;
}
于 2013-04-02T19:16:52.320 回答
0

Character.ToLowerCase(char c)在测试相等性之前使用。

于 2013-04-02T19:17:03.030 回答
-1

in=in.toLowerCase();

然而,在大小写之间转换字符的最有效方法是翻转第 6 位(ASCII 值相差 32)。

于 2013-04-02T19:17:27.857 回答