この単純な「翻訳メカニズム」を簡略化する方法がありますか?このコードを単純化するには?
ハッシュテーブルは便利ですか?
char translateChar(char strIn)
{
char strOut = '?';
if (strIn == 'A') strOut = '1';
else if (strIn == 'B') strOut = '2';
else if (strIn == 'C') strOut = '3';
else if (strIn == 'D') strOut = '4';
else if (strIn == 'E') strOut = '5';
else if (strIn == 'F') strOut = '6';
else if (strIn == 'G') strOut = '7';
else if (strIn == 'H') strOut = '8';
else if (strIn == 'I') strOut = '9';
else if (strIn == 'J') strOut = '@';
else if (strIn == 'K') strOut = 'A';
else if (strIn == 'L') strOut = 'B';
else if (strIn == 'M') strOut = 'C';
else if (strIn == 'N') strOut = 'D';
else if (strIn == 'O') strOut = 'E';
else if (strIn == 'P') strOut = 'F';
else if (strIn == 'Q') strOut = 'G';
else if (strIn == 'R') strOut = 'H';
else if (strIn == 'S') strOut = 'I';
else if (strIn == 'T') strOut = 'J';
else if (strIn == 'U') strOut = 'K';
else if (strIn == 'V') strOut = 'L';
else if (strIn == 'W') strOut = 'M';
else if (strIn == 'X') strOut = 'N';
else if (strIn == 'Y') strOut = 'O';
else if (strIn == 'Z') strOut = 'P';
else if (strIn == '2') strOut = 'X';
else if (strIn == '1') strOut = 'Y';
else if (strIn == '_') strOut = '_';
return strOut;
}
辞書はここに間違いなく便利です。 –
私が知る限り、ハッシュテーブルは確かに仕事をするでしょうが、コードのいくつかの文字を保存します。一方、すべての文字をハッシュテーブルで検索する必要があります。つまり、このアプローチは、それ以上のチェックをキャンセルするので、(おそらくstrOut = 'x'をreturn 'x';に置き換えると)このアプローチは多少クリーンでパフォーマンスは向上します。 –
http://codereview.stackexchange.com/ –