У вас есть идея, как упростить этот простой «механизм перевода»?Как упростить этот кусок кода?
Является ли Хэш-стол полезным?
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/ –