永发信息网

在java控制台上输入字母,最后统计每个字母出现的个数, eg: ----->aaabbc 打印:a(3), b(2),c(1)

答案:3  悬赏:60  手机版
解决时间 2021-11-24 17:54
  • 提问者网友:孤凫
  • 2021-11-23 17:41
在java控制台上输入字母,最后统计每个字母出现的个数, eg: ----->aaabbc 打印:a(3), b(2),c(1)
最佳答案
  • 五星知识达人网友:猎心人
  • 2021-11-23 17:50
Scanner in = new Scanner(System.in);
System.out.println("请输入一个字符串:");
// 获取控制台输入内容
String aa = in.nextLine();
// 定义Map集合保存输入字符串及输入次数
Map map = new HashMap();
for (int i = 0; i < aa.length(); i++) {
char a = aa.charAt(i);
// 判断截取字符串是否为字母,97-122为小写字母,65-90为大写字母
if ((int) a < 97 || (int) a > 122)
continue;
// 判断Map里面是否已保存当前截取字符串
// 如果没有,保存key为截取字符串,输入次数为1,如果,在原来的输入次数上加1
if (map.get(a) == null)
map.put(String.valueOf(a), 1);
else
map.put(String.valueOf(a),
Integer.parseInt(map.get(a) + "") + 1);
}
// 因为Map集合没有排序功能,所以需要自己实现
// 定义List集合记录Map集合的key
List list = new ArrayList();
list.addAll(map.keySet());
// 对List集合正序排序
Collections.sort(list);
// 对List集合倒序排序
// Collections.sort(list, Collections.reverseOrder());
// 输出Map集合保存的输入次数
for (String a : list) {
System.out.print(a + "(" + map.get(a) + "),");
}
全部回答
  • 1楼网友:深街酒徒
  • 2021-11-23 19:41
我不知道做啊
  • 2楼网友:旧脸谱
  • 2021-11-23 18:27
有一个笨方法,就是加上一个class,里边包含两项,1个是 listener, 然后再放个countor进去,在程序里放26个字母分别监听,然后输出非零组 。 或者监听string, 然后用method找出字母出现的次数,输出非零项
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯