算法:号码转换问题

简介: 该题太水,没必要参考。   package practice; import java.io.BufferedInputStream; import java.util.Map; import java.

 

该题太水,没必要参考。

 

package practice;

import java.io.BufferedInputStream;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 * @author caiyu
 * @date 2014-11-2
 */
public class MemorableTelNumber {
    public static void main(String[] args) {
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        int l = cin.nextInt();
        String num;
        Map<String, Integer> m = new TreeMap<String, Integer>();
        StringBuffer c;
        int tmp;
        String s;
        for (int i = 0; i < l; i++) {
            num = cin.next().trim();
            c = new StringBuffer();
            for (int j = 0, len = num.length(); j < len; j++) {
                tmp = handle(num.charAt(j));
                if (0 <= tmp && tmp <= 9)
                    c.append(tmp);
            }

            if (c.length() == 7) {
                c.insert(3, "-");
                s = c.toString();
                if (m.containsKey(s))
                    m.put(s, m.get(s) + 1);
                else
                    m.put(s, 1);
            }
        }

        for (String k : m.keySet()) {
            if (m.get(k) > 1)
                System.out.println(k + " " + m.get(k));
        }
    }

    private static int handle(char c) {
        if (c == 'A' || c == 'B' || c == 'C')
            return 2;
        if (c == 'D' || c == 'E' || c == 'F')
            return 3;
        if (c == 'G' || c == 'H' || c == 'I')
            return 4;
        if (c == 'J' || c == 'K' || c == 'L')
            return 5;
        if (c == 'M' || c == 'N' || c == 'O')
            return 6;
        if (c == 'P' || c == 'R' || c == 'S')
            return 7;
        if (c == 'T' || c == 'U' || c == 'V')
            return 8;
        if (c == 'W' || c == 'X' || c == 'Y')
            return 9;
        if (c == '-')
            return -1;
        return Integer.parseInt("" + c);
    }
}
View Code

 

目录
相关文章
|
3天前
固定电话和移动电话正则校验
固定电话和移动电话正则校验
7 0
|
7月前
|
算法 C++
Morton码的计算
Morton码是对栅格格网进行编码的一种算法,在Google中搜索Morton,搜索结果第一位是Wikipedia的Z-order Curve,这是因为Morton码编码结果展现为一种Z形的填充曲线。下面简要说一下如何计算四进制和十进制的Morton码。
300 0
深度解析:短信号码都有那些?他们之间有什么区别?
您的手机上常见的短信号码都有哪些呢,他们直接有什么区别呢,本文将带您一起学习了解哦。
深度解析:短信号码都有那些?他们之间有什么区别?
|
Java
Java实现身份证号码验证
整理文档时,搜刮出一个Java实现身份证号码验证源码示例代码,稍微整理精简了一下分享给大家。
317 0
|
算法
VB编程:身份证号码是否合法-49
VB编程:身份证号码是否合法-49
118 0
|
Java
用Java实现3D随机选号码的功能
- ## 需要用到Scanner语句 - ## 需要用到for循环 - ## 需要用到Math方法
421 0
用Java实现3D随机选号码的功能
|
算法
VB编程:身份证号码是否合法
VB编程:身份证号码是否合法
175 0
VB编程:身份证号码是否合法
|
Java
java使用正则表达式判断手机号,固定电话,身份证,邮箱,url,车牌号,日期,ip地址,mac,人名等
版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78983474 简介   1.
4143 0