UPDATE:Jak przekonwertować alfanumeryczny numer telefonu do cyfry
Ostateczna wersja mojego narzędzia wygląda następująco:
StringBuilder b = new StringBuilder();
for(char c : inLetters.toLowerCase().toCharArray())
{
switch(c)
{
case '0': b.append("0"); break;
case '1': b.append("1"); break;
case '2': case 'a': case 'b': case 'c': b.append("2"); break;
case '3': case 'd': case 'e': case 'f': b.append("3"); break;
case '4': case 'g': case 'h': case 'i': b.append("4"); break;
case '5': case 'j': case 'k': case 'l': b.append("5"); break;
case '6': case 'm': case 'n': case 'o': b.append("6"); break;
case '7': case 'p': case 'q': case 'r': case 's': b.append("7"); break;
case '8': case 't': case 'u': case 'v': b.append("8"); break;
case '9': case 'w': case 'x': case 'y': case 'z': b.append("9"); break;
}
}
return builder.toString();
oryginalne pytanie:
I Podjęłam prostą czynność polegającą na przekonwertowaniu alfanumerycznego numeru telefonu na ciąg cyfr. Na przykład 1-800-HI-HAXOR stanie się 1-800-44-42967. Moją pierwszą próbą było stworzenie paskudnego oświadczenia, ale chciałbym, aby było to bardziej eleganckie i wydajne rozwiązanie. Oto, co mam:
for(char c : inLetters.toLowerCase().toCharArray())
{
switch(c)
{
case '0': result+="0"; break;
case '1': result+="1"; break;
case '2': case 'a': case 'b': case 'c': result+="2"; break;
case '3': case 'd': case 'e': case 'f': result+="3"; break;
case '4': case 'g': case 'h': case 'i': result+="4"; break;
case '5': case 'j': case 'k': case 'l': result+="5"; break;
case '6': case 'm': case 'n': case 'o': result+="6"; break;
case '7': case 'p': case 'q': case 'r': case 's': result+="7"; break;
case '8': case 't': case 'u': case 'v': result+="8"; break;
case '9': case 'w': case 'x': case 'y': case 'z': result+="9"; break;
}
}
Dzięki!
Pomimo tego, o ile bardziej "elegancka" większość ludzi myśli, że może to zrobić, twoje "oświadczenie na temat nieprzyjemnej zmiany" jest dużo łatwiejsze do zrozumienia. Ironiczny :) – Nippysaurus
Jeśli chcesz to poprawić, masz za dużo czasu. ;) – simon