2013-05-09 61 views
0

我正在编写一个代码,它将解码包含所有数字中的字母的10位数电话号码。 即即将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

intchar是不同的。您应该使用'2'代替2等。

+0

谢谢,那就是问题所在。将接受,当它允许我。 – 2013-05-09 04:33:06