题目描述
把单词转换成拨号键盘上的数字。
如“dell”转换成3355.“alienware”转换成254369273
题目来源及自己的思路
使用 JavaScript function 来写,考虑到用switch,想用[a-cA-C] 可以输出2 这样的写法,但是不太清楚如何写,求解
把单词转换成拨号键盘上的数字。
如“dell”转换成3355.“alienware”转换成254369273
使用 JavaScript function 来写,考虑到用switch,想用[a-cA-C] 可以输出2 这样的写法,但是不太清楚如何写,求解
你可以试着用ASCII码来判断,不过感觉上面的数组方式其实效率更高点
public static String getNum(String value)
{
StringBuffer sbu = new StringBuffer();
char[] chars = value.toCharArray();
for (int i = 0; i < chars.length; i++) {
int num = (int)chars[i];
if (num < 97 || num >122){
return "数据错误";
}
int index = (num -97)/3;
if (index < 5) {
sbu.append(index+2);
}else if(num < 116){
sbu.append(7);
}else if(num < 119){
sbu.append(8);
}else{
sbu.append(9);
}
}
return sbu.toString();
}
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
数字与字母互换是简单的,有个映射表就行了,但你这是想直接用
0~9
去映射a~z
?我佩服你的脑回路这是之前写过的9宫格转换方法,参考下