1

いくつかの文字を 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

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 に答える