我有以下任务:
编写一个程序,提示用户输入以字母表示的电话号码,并以数字输出相应的电话号码。如果用户输入的字母超过七个,则只处理前七个字母。同时输出第三位数字后的–(连字符)。允许用户同时使用大写字母和小写字母以及单词之间的空格。
以下是我尝试过的,但无法发挥作用。请告知。
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循环之外创建数字数组。现在,每次递增都要创建一个新数组。