有没有大神教一下,萌新实在写不出来

神经细胞 2018-12-02 03:58:12
A,B和C = 2
D,E和F = 3
G,H和I = 4
J,K和L = 5
M,N和O = 6
P,Q,R和S = 7
T,U和V = 8
W,X,Y和Z = 9
要求用户输入一个10个字符的电话号码
格式xxx-xxx-xxxx。 应用程序应显示任何电话号码
出现在原文中的字母字符翻译成数字等价物。 对于
例如,如果用户输入555-GET-FOOD,则应用程序应显示555-438-3663。
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈希塞特 2019-01-31
  • 打赏
  • 举报
回复
遍历是最低效的,字母作为key,值作为value,用map存,替换的时候每个字母get一下就行
高 斯林 2018-12-06
  • 打赏
  • 举报
回复
你又不是漂亮妹纸,自己百度去吧
括弧笑 2018-12-02
  • 打赏
  • 举报
回复
遍历判断转换不就好了,这是最直接的办法了,都不带任何技巧的
  • 打赏
  • 举报
回复
方法1:

public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String line="-1";
while(true){
System.out.println("输入格式xxx-xxx-xxxx");
line=in.nextLine();
if("-1".equals(line)){
if(in!=null){
in.close();
}
break;
}
System.out.println(decodePhoneNum(line));
}
}
public static String decodePhoneNum(String phoneNum){
char[] nums=phoneNum.toCharArray();
int len=nums.length;
for(int i=0;i<len;i++){
switch(nums[i]){
case 'A':
case 'B':
case 'C':
nums[i]='2';
break;
case 'D':
case 'E':
case 'F':
nums[i]='3';
break;
case 'G':
case 'H':
case 'I':
nums[i]='4';
break;
case 'J':
case 'K':
case 'L':
nums[i]='5';
break;
case 'M':
case 'N':
case 'O':
nums[i]='6';
break;
case 'P':
case 'Q':
case 'R':
case 'S':
nums[i]='7';
break;
case 'T':
case 'U':
case 'V':
nums[i]='8';
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
nums[i]='9';
break;
default:break;
}
}
return String.valueOf(nums);
}

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧