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

时间:2015-12-30 16:43:45

标签: java

我有以下任务:

  

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

以下是我尝试过的,但无法让它发挥作用。请指教。

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 [指数] 至 number [index]。

我需要从String获取输入然后从中获取char然后将其更改为数字。我不知道我哪里出错了,我还是java的新手。

1 个答案:

答案 0 :(得分:0)

我认为你的问题在这里:

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

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