2013-05-09 7 views
0

Я пишу код, который будет декодировать 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

ответ

2

int и char различны. Вы должны использовать '2' вместо 2 и т. Д.

+0

Спасибо, в этом была проблема. Принят, когда это позволит. –

Смежные вопросы