利用集合map

1、编写JAVA应用程序。从键盘上输入一个字符串,a)分别统计该串中每个字符出现的次数。b)统计"出现次数最多元素,及出现次数 c)统计字母,数字,空格等出现的次数...要求:
1) 利用Treemap类及其entrySet()方法;
2) 利用泛型等来实现。

public void test2() throws Exception {
Map<Character, Integer> map = new TreeMap<Character,Integer>();
Scanner sc = new Scanner(System.in);
String str = "";
int letterCount = 0; //英文字母个数
int blankCount = 0; //空格个数
int numCount = 0; //数字个数
int otherCount = 0; //其他字符个数
System.out.println("请输入字符串>>>>>>>>>>>");
str = sc.nextLine();
char[] chs = str.toCharArray();

/*在遍历循环体中
* 先判断map的key中是否存在该字符
* 存在 该key对应的 value值即计数器加一
* 不存在 将其放入容器 计数器初始化为1
* */
for (char ch:chs) {
if(map.containsKey(ch)){
int n = map.get(ch);
map.put(ch, ++n);
}else {
map.put(ch, 1);
}
// System.out.println(map);

// if(chs[i] <= 'z'&&chs[i]>='a'||(chs[i] <= 'A'&&chs[i]>='Z')){
// letterCount++;
//
// }else if(chs[i] <= '9'&&chs[i]>='0'){
// numCount++;
// }else if(chs[i] == ' '){
// blankCount++;
// }else{
// otherCount++;
// }
}
char maxc = 0;
int maxcount = 0;

for(Map.Entry<Character,Integer> entry : map.entrySet()){
char key = entry.getKey();
int value = entry.getValue();
if(value>maxcount){
maxc = key;
maxcount = value;
}


System.out.println("统计每个字符的个数\t key:"+key+"------"+"value:"+value);
if(key<= 'z'&&key>='a'||(key <= 'A'&&key>='Z')){
letterCount++;
}else if(key<='9'&&key>='0'){
numCount++;
}else if(key ==' '){
blankCount++;
}else {
otherCount++;
}
}
System.out.println("出现次数最多元素:"+maxc+"------出现次数"+maxcount);
System.out.println("字母个数:"+letterCount);
System.out.println("数字个数:"+numCount);
System.out.println("空格个数:"+blankCount);
System.out.println("其他字符个数:"+otherCount);


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值