Я пытаюсь написать программу, которая принимает номер телефона с буквами в нем и выводит номер телефона со всеми цифрами. Цифры, которые заменяют букву, определяются следующим ключом.Заменить буквы в строке с номерами в зависимости от буквы с классом символов
0 = none | 1 = none | 2 = ABC
3 = DEF | 4 = GHI | 5 = JKL
6 = MNO | 7 = PQRS | 8 = TUV
| 9 = WXYZ |
Так что, если я получил номер телефона:
1-800-KILLERS
Выход будет:
1-800-545-5377
Это то, что я до сих пор. Я не выписал все случаи для оператора switch, но все они будут идти по строкам первых случаев: a, b и c.
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a phone number or quit to exit");
String number = stdin.nextLine();
System.out.println(getNumber(number));
}
public static int getNumber(String num) {
for (int i = 0; i < num.length() ; i++) {
if (Character.isLetter(i)) {
switch (num.charAt(i)) {
case 'A':
case 'C':
num.charAt(i) = "2" ;
break;
// etc
}
}
}
}
Рассмотрите возможность создания карты, где ключ является символом, а значение - это номер –
Кстати, что вы думаете? –
Используйте 'StringBuilder', чтобы вы могли использовать [' setCharAt'] (https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#setCharAt (int,% 20char)). Когда вы закончите, вызовите 'toString'. – 4castle