编写一个程序,提示用户输入以字母表示的电话号码,并以数字输出相应的电话号码我



我有以下任务:

编写一个程序,提示用户输入以字母表示的电话号码,并以数字输出相应的电话号码。如果用户输入的字母超过七个,则只处理前七个字母。同时输出第三位数字后的–(连字符)。允许用户同时使用大写字母和小写字母以及单词之间的空格。

以下是我尝试过的,但无法发挥作用。请告知。

package assignment;
import java.util.*;
public class Question3 {

    public static void main(String args[]) {
    Scanner keyboard = new Scanner(System.in);
    String telephone_letter;
    int index;

    System.out.println("Enter phone number :");
    telephone_letter = keyboard.nextLine();
    char aChar[] = telephone_letter.toCharArray();
    for(index=0;index<telephone_letter.length();index++){
    int[] number;
        number = new int[index];
        switch (aChar[index]) 
        {
            case 'A':
            case 'a':
            case 'B':
            case 'b':
            case 'C':
            case 'c':
                number[index] = 2;
                break;
            case 'D':
            case 'd':
            case 'E':
            case 'e':
            case 'F':
            case 'f':
                number[index] = 3;
                break;
            case 'G':
            case 'g':
            case 'H':
            case 'h':
            case 'I':
            case 'i':
                number[index] = 4;
                break;
            case 'J':
            case 'j':
            case 'K':
            case 'k':
            case 'L':
            case 'l':
                number[index] = 5;
                break;
            case 'M':
            case 'm':
            case 'N':
            case 'n':
            case 'O':
            case 'o':
                number[index] = 6;
                break;
            case 'P':
            case 'p':
            case 'Q':
            case 'q':
            case 'R':
            case 'r':
            case 'S':
            case 's':
                number[index] = 7;
                break;
            case 'T':
            case 't':
            case 'U':
            case 'u':
            case 'V':
            case 'v':
                number[index] = 8;
                break;
            case 'W':
            case 'w':
            case 'X':
            case 'x':
            case 'Y':
            case 'y':
            case 'Z':
            case 'z':
                number[index] = 9;
                break;
            default:
                System.out.println("Invalid Digit");
                break;

        }
    }
        System.out.println("achar" + number[0]+number[1]+number[2]+"-"+number[4]+number[5]+number[6]+number[7]);

    }
}

我有匹配问题aChar[索引]到数字[索引]。

我需要从字符串中获取输入,然后从中获取字符,然后将其更改为数字。我不确定哪里出了问题,我还是java的新手。

我认为你的问题在这里:

for(index=0;index<telephone_letter.length();index++){
    int[] number;

在for循环之外创建数字数组。现在,每次递增都要创建一个新数组。

最新更新