我有以下任务:
编写一个程序,提示用户输入以字母表示的电话号码,并以数字形式输出相应的电话号码。如果用户输入的字母超过七个,则只处理前七个字母。在第三个数字后输出 - (连字符)。允许用户同时使用大写和小写字母以及单词之间的空格。
以下是我尝试过的,但无法让它发挥作用。请指教。
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的新手。
答案 0 :(得分:0)
我认为你的问题在这里:
for(index=0;index<telephone_letter.length();index++){
int[] number;
在for循环之外创建数字数组。现在,每次增量时都会创建一个新数组。