Я пишу код, который будет декодировать 10-значный телефонный номер, содержащий буквы во всех номерах. i.e 1-800-iloveny преобразуется в 1-800-4568369. До сих пор я столкнулся только с одной проблемой, но имею два вопроса. Выполнять мои операторы if()
правильно преобразовывать текущий символ в строку в int? Тогда основная проблема заключается в том, что мой код не добавит преобразованные символы в новую строку, которая затем выведет декодированный номер телефона (предположим, что я правильно их преобразовал).Замена символов в строке с номером
class PhoneNumber
{
String phoneNumber;
public PhoneNumber(String num)
{
phoneNumber = num;
}
public String decodePhoneNumber()
{
phoneNumber = phoneNumber.toLowerCase();
String decodedNumber = "";
for(int cnt = 0; cnt < phoneNumber.length();cnt++)
{
char ch = phoneNumber.charAt(cnt);
if((ch=='a')||(ch=='b')||(ch=='c'))
{
ch = 2;
}
else if((ch=='d')||(ch=='e')||(ch=='f'))
{
ch = 3;
}
else if((ch=='g')||(ch=='h')||(ch=='i'))
{
ch = 4;
}
else if((ch=='j')||(ch=='k')||(ch=='l'))
{
ch = 5;
}
else if((ch=='m')||(ch=='n')||(ch=='o'))
{
ch = 6;
}
else if((ch=='p')||(ch=='q')||(ch=='r')||(ch=='s'))
{
ch = 7;
}
else if((ch=='t')||(ch=='u')||(ch=='v'))
{
ch = 8;
}
else if((ch=='w')||(ch=='x')||(ch=='y')||(ch=='z'))
{
ch = 9;
}
decodedNumber = decodedNumber + ch;
}
return decodedNumber;
}
}
, а затем образец вводится строка будет выглядеть следующим образом:
public class TestPhoneNumber
{
public static void main(String[] args)
{
PhoneNumber ph1 = new PhoneNumber("1-800-ILOVENY");
System.out.println("Decoded phone number: " + ph1.decodePhoneNumber());
}
}
Однако окончательный вывод оказывается выглядеть следующим образом: декодируется номер телефона: 1-800
Спасибо, в этом была проблема. Принят, когда это позволит. –