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
编写一个java应用程序,要求用户输入一个10个字符的电话号码
格式xxx-xxx-xxxx。 应用程序应显示任何电话号码
出现在原文中的字母字符翻译成数字等价物。 对于
例如,如果用户输入555-GET-FOOD,则应用程序应显示555-438-3663。
正则实现
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
/**
*
* 字符串转换处理
*
* @author 00fly
* @version [版本号, 2018年10月14日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class Converter
{
// 被转换字符串对应关系
private static Map<String, String> map;
private static Pattern pattern;
static
{
map = new HashMap<>();
map.put("A", "2");
map.put("B", "2");
map.put("C", "2");
map.put("D", "3");
map.put("E", "3");
map.put("F", "3");
// ...
String patternString = "(" + StringUtils.join(map.keySet(), "|") + ")";
pattern = Pattern.compile(patternString);
}
/**
* 字符串转换
*
* @param src 源字符串
* @return 替换后的值
* @see [类、类#方法、类#成员]
*/
private static String convert(String src)
{
Matcher matcher = pattern.matcher(src);
StringBuffer sb = new StringBuffer();
while (matcher.find())
{
matcher.appendReplacement(sb, map.get(matcher.group(1)));
}
matcher.appendTail(sb);
return sb.toString();
}
/**
* main
*
* @param args
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args)
{
String src = "555-GET-FOOD";
String target = convert(src);
System.out.println(src + " ---> " + target);
}
}
package test;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
System.out.println("请输入10个字符的电话");
Scanner scanner = new Scanner(System.in);
String phoneNum = scanner.next();
char[] charArray = phoneNum.toCharArray();
StringBuffer phoneNewNum=new StringBuffer();
for (char c : charArray) {
if (c>='A'&&c<='C') {
phoneNewNum.append(2);
}else if (c>='D'&&c<='F') {
phoneNewNum.append(3);
}else if (c>='G'&&c<='I') {
phoneNewNum.append(4);
}else if (c>='J'&&c<='L') {
phoneNewNum.append(5);
}else if (c>='M'&&c<='O') {
phoneNewNum.append(6);
}else if (c>='P'&&c<='S') {
phoneNewNum.append(7);
}else if (c>='T'&&c<='V') {
phoneNewNum.append(8);
}else if (c>='W'&&c<='Z') {
phoneNewNum.append(9);
}else {
phoneNewNum.append(c);
}
}
System.out.println("电话号码是:"+phoneNewNum.toString());
}
}