Java:比较字符数组区分大小写?

时间:2013-04-02 19:12:40

标签: java

我正在编写一个程序来比较几个字符与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.无论如何都要忽略这里的情况?感谢一些建议。

4 个答案:

答案 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)。