Java:比较字符数组是不是区分大小写? [复制]

Posted

技术标签:

【中文标题】Java:比较字符数组是不是区分大小写? [复制]【英文标题】:Java: Comparing Array of Characters case sensitive? [duplicate]Java:比较字符数组是否区分大小写? [复制] 【发布时间】:2013-03-24 05:40:53 【问题描述】:

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

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。无论如何这里可以忽略大小写吗?感谢一些建议。

【问题讨论】:

请查看类似问题的答案:***.com/questions/2275004/… String.indexOf 改为 ? 【参考方案1】:

对两个字符都使用 Character.toLowerCase:

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

附带说明,如果数组中的所有字符都已经是小写,则可以不使用第一个 toLowerCase,甚至可以在初始字符串上使用 toLowerCase并避免两者。

【讨论】:

我认为你缺少一些结束括号。 已修复 - 感谢您的指点。 :) 谢谢它工作得很好!【参考方案2】:

in=in.toLowerCase();

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

【讨论】:

Java 不适用于 ASCII。它适用于Unicode。但是 32 差异确实适用于英文字母。【参考方案3】:

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

【讨论】:

【参考方案4】:

你可以使用Character.toLowerCase(char):

if (Character.toLowerCase(cha[a]) == Character.toLowerCase(testChar)) 
   return a+1;

【讨论】:

以上是关于Java:比较字符数组是不是区分大小写? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Java String

Java String

如何执行不区分大小写的字符串比较? [复制]

Java UUID是不是区分大小写

Java UUID是不是区分大小写

Java UUID是不是区分大小写