1.题目说明
题目要求:辉子最近接到了一个棘手的任务,他们公司有一个电话簿,但是这是一个奇怪的电话簿,因为它不是用数字记录电话号码,而是用数字键上所对应的字母来记录电话号码(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz),电话号码只有11位。现在你的任务就是帮辉子写一个程序来把这些字母的电话号码转化成数字的电话号码。
输入:
第一行输入一个正整数T(0<T<=100),表示测试数据的组数,每组测试数据只有一行,输入一串字符(字符长度为11)。
输出:
每组输出占一行,输出数字的电话号码。
例如:
样例输入
3
phqghumeayl
nlfdxfircvs
cxggbwkfnqd
样例输出
74744863295
65339347287
29442953673
2.问题描述
输入一个正整数T(0<T<=100),表示有T行字符长度为11的字符串需要按(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz)对应原则转换为数字字符,然后输出电话号码。
3.问题分析
将T串字母字符(字符长度为11)分别存储到不同的数组中,然后将二维数组中的数据按(2-abc,3-def,4-ghi,5-jkl,6-mno,7-pqrs,8-tuv,9-wxyz)对应输出数字。
4.代码实现
import java.util.*;
public class Design_04电话号码 {
static String arr[] = new String[100];
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str1 = "";
int n = sc.nextInt();
for(int i = 0 ; i < n ; i++){
String str2 = sc.next();
for(int j=0; j < str2.length(); j++) {
if (str2.charAt(j)=='a' || str2.charAt(j)=='b' || str2.charAt(j) =='c') str1 += '2';
else if (str2.charAt(j) == 'd' || str2.charAt(j) == 'e' || str2.charAt(j) == 'f') str1 += '3';
else if (str2.charAt(j) == 'g' || str2.charAt(j) == 'h' || str2.charAt(j) == 'i') str1 += '4';
else if (str2.charAt(j) == 'j' || str2.charAt(j) == 'k' || str2.charAt(j) == 'l') str1 += '5';
else if (str2.charAt(j) == 'm' || str2.charAt(j) == 'n' || str2.charAt(j) == 'o') str1 += '6';
else if (str2.charAt(j)=='p'||str2.charAt(j)=='q'||str2.charAt(j)=='r'||str2.charAt(j)=='s')
str1 += '7';
else if (str2.charAt(j) == 't' || str2.charAt(j) == 'u' || str2.charAt(j) == 'v') str1 += '8';
else if (str2.charAt(j)=='w' || str2.charAt(j)=='x' || str2.charAt(j)=='y' || str2.charAt(j)=='z')
str1 += '9';
}
arr[i] = str1;
str1 = "";
}
for(int i = 0 ; i < n ; i++) System.out.println(arr[i]);
}
}
5.结果展示: