统计你的手机号码中出现次数最多的数字,并打印出此数字及其出现次数

来源:互联网 发布:手机淘宝联盟自己购买 编辑:程序博客网 时间:2024/05/01 07:33
package com.gemptc;


import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;


public class FindMostNumber {
public static void show(String phone){
//第一步:把手机号码转换为字符串数组
char[] numbers = phone.toCharArray();
//第二步:求出每个数字出现的次数,定义一个map对象,键是手机号码中的每一个数字,value是手机数字出现的次数
//如果集合中不存在当前手机数字,则把当前数字做为键值,对应的value值为1,表示第一次出现
//如果集合中存在当前手机数字,则已有当前数字做为的键值,取出当前键值对应的value值,表示已经出现了几次,自加1之后再修改其值
Map<Character, Integer> map = new HashMap<Character,Integer>();
for (int i = 0; i < numbers.length; i++) {
char dight =numbers[i];
if (!map.containsKey(dight)) {
//第一次出现
map.put(dight, 1);
}else{
int count = map.get(dight);
count++;
//说明不是第一次出现,先查看它出现了几次
map.put(dight, count);
}
}

Set<Entry<Character, Integer>> set = map.entrySet();
for (Entry<Character, Integer> entry : set) {
System.out.println("手机号码:"+entry.getKey()+ "--->" + "出现次数是:"+entry.getValue());
}

//第二步:取出次数的最大值
Collection<Integer> c = map.values();//map的value值的集合
int max = Collections.max(c);//max即手机号码出现次数的最大值
System.out.println("----------------------");
Set<Entry<Character, Integer>> set2 = map.entrySet();
for (Entry<Character, Integer> entry : set2) {
//只输出出现次数最多的数字
if (entry.getValue() == max) {
System.out.println("手机号码:"+entry.getKey()+ "--->" +"出现次数最多是:"+ max);
}

}


}



public static void main(String[] args) {
show("13913535174");


}


}
0 0
原创粉丝点击