电话号码翻译错误

时间:2015-10-20 15:51:13

标签: java string phone-number

这个程序应该带一个带有字母的电话号码,并将其翻译成所有数字,但我在编译时一直收到这三个错误。

  

Phone_ronhoward.java:30:错误:'else'没有'if'else if(letter<   'G')^

     

Phone_ronhoward.java:73:错误:')'预期为(int i = 0; i<   phoneNumber.length;我++;)                                                   ^

     

Phone_ronhoward.java:73:错误:非法启动表达式(int   i = 0;我< phoneNumber.length;我++;)                                                    ^

     

3个错误

import java.util.Scanner;

public class Phone_ronhoward
{
 public static char getNumber(char upperCaseLetter)
 {
    char returnValue = 0;

    if(letter < 'A')
    {
        returnValue = '0';
    }
    else if(letter < 'D');
    {
        returnValue = '2';
    }
    else if(letter < 'G')
    {
        returnValue = '3';
    }
    else if(letter < 'J')
    {
        returnValue = '4';
    }
    else if(letter < 'M')
    {
        returnValue = '5';
    }
    else if(letter < 'P')
    {
        returnValue = '6';
    }
    else if(letter < 'T')
    {
        returnValue = '7';
    }
    else if(letter < 'W')
    {
        returnValue = '8';
    }
    else if(letter <= 'Z')
    {
        returnValue = '9';
    }
    else
    {
        returnValue = '0';
    }
    return returnValue;

}
public static void main(String[] args)
{
    Scanner scan = new Scanner(System.in);

    System.out.print("Enter the phone number string: ");

    String phoneNumber = input.nextLine().toUpperCase();

    for(int i = 0; i < phoneNumber.length; i++;)
    {

        getNumber();

    }
} 

}

3 个答案:

答案 0 :(得分:1)

else if(letter < 'D');之后你有一个额外的分号,只需删除它:

    else if(letter < 'D')

答案 1 :(得分:1)

为了防止您的问题,将所有数字转换为零:

public static char getNumber(char upperCaseLetter)
{
    char returnValue;

    if((letter >= 'A') && (letter < 'D'))
    {
        returnValue = '2';
    }
    else if(letter < 'G')
    {
        returnValue = '3';
    }
    else if(letter < 'J')
    {
        returnValue = '4';
    }
    else if(letter < 'M')
    {
        returnValue = '5';
    }
    else if(letter < 'P')
    {
        returnValue = '6';
    }
    else if(letter < 'T')
    {
        returnValue = '7';
    }
    else if(letter < 'W')
    {
        returnValue = '8';
    }
    else if(letter <= 'Z')
    {
        returnValue = '9';
    }
    else
    {
        returnValue = upperCaseLetter;
    }

    return returnValue;
}

答案 2 :(得分:0)

请尝试以下代码(我已经测试过):

import java.util.Scanner;

public class Phone_ronhoward {
    public static char getNumber(char letter) {
        char returnValue = 0;
        if (letter < 'A') {
            returnValue = '0';
        } else if (letter < 'D') {
            returnValue = '2';
        } else if (letter < 'G') {
            returnValue = '3';
        } else if (letter < 'J') {
            returnValue = '4';
        } else if (letter < 'M') {
            returnValue = '5';
        } else if (letter < 'P') {
            returnValue = '6';
        } else if (letter < 'T') {
            returnValue = '7';
        } else if (letter < 'W') {
            returnValue = '8';
        } else if (letter <= 'Z') {
            returnValue = '9';
        } else {
            returnValue = '0';
        }
        return returnValue;
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter the phone number string: ");
        String phoneNumber = scan.nextLine().toUpperCase();
        for (int i = 0; i < phoneNumber.length(); i++) {
            System.out.println(getNumber(phoneNumber.charAt(i)));
        }
    }
}