Description
读入包含若干个单词的文本数据,将所有内容转换为大写,统计每个单词与该单词的出现次数。此外,还需要统计每个字符及其出现次数(不包括空格)。


Input

若干行的单词,以空格作为分隔符,每行单词数量不定。

遇到一行数据“0000”,读取数据结束。(字符串“0000”不计入上述统计数据)


Output

全部数据读取完成,输出如下信息:

(1)出现次数最多的单词及其出现次数;若次数相同,输出字典序最大的单词。

(2)出现次数最少的单词及其出现次数;若次数相同,输出字典序最小的单词。

(3)每个字母,按A到Z的顺序以及次数。

其中,单词和字母占10个字符位置,左对齐;计数(即:出现次数)占8位,右对齐。


Sample
Input

I would rather have had one breath of her hair
one KISS of her mouth one touch of her hand than an eternity without it
I WOULD rathER haVE HAD oNe BreatH Of Her Hair
ONE kiss of her mouth one touch of her hand than an eternity WITHOUT IT
0000


Output

ONE 6
AN 2
A 16
B 2
C 2
D 6
E 22
F 6
G 0
H 26
I 12
J 0
K 2
L 2
M 2
N 14
O 20
P 0
Q 0
R 16
S 4
T 20
U 8
V 2
W 4
X 0
Y 2
Z 0


Hint

Java语言,建议使用HashMap存储数据;
Python语言,建议使用dict存储数据。


思路:这道题可以使用Map集合, 这里用到了Map集合是一个键值对,可以实现键和值的一一对应,并且Map中键的值是唯一的不能重复的,所以这道题可以将单词设置为键的值,出现次数设置为键所对应的值。

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.TreeMap;public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);Map<String, Integer> map = new TreeMap<String, Integer>();//定义一个TreeMap(可以将集合中的键值对按照键的值得升序践行排列),也可以使用HashMap//Map<String, Integer> map = new HashMap<String, Integer>();//使用HashMap的代码(一共有两个地方需要替换)//需要和上一行的TreeMap替换,并把下面的寻找出现次数最多的和最小的代码替换就可以String str;int[] book = new int[200];//记录每一个字符出现的次数while (true){str = input.nextLine();if (str.equals("0000"))//循环结束条件{break;}str = str.toUpperCase();//题目要求将文本全部转化为大写字母for (int i = 0; i < str.length(); i++)//记录改行字符串中每一个字符{book[str.charAt(i)]++;}String[] temp = str.split(" ");//通过split函数将字符串通过其中所含有的空格分开,分开后就成了一个个单词for (int i =0; i < temp.length; i++)//将每个单词记录进map中{if (map.containsKey(temp[i]))//如果map中已经记录过该单词,将该单词对应的值加一{map.put(temp[i],map.get(temp[i]) + 1);}else//如果没有记录过,创建一个键值对{map.put(temp[i], 1);}}}String text_Max = null, text_Min = null;//记录出现次数最多的单词和出现最少的单词int Max = 0, Min = 100000000;//记录出现次数最多和最少的次数Iterator<Entry<String, Integer>> it = map.entrySet().iterator();//利用迭代器进行map集合的遍历while (it.hasNext()){Entry<String, Integer> temp = it.next();String key = temp.getKey();//单词int value = temp.getValue();//出现次数if (value >= Max)//题目要求输出字典序最大的{Max = value;text_Max = key;}if (value < Min)//题目要求输出字典序最小的{Min =  value;text_Min = key;}//使用HashMap的方法,下面注释的替换上面对应的两个if语句/*if (value > Max || (value == Max && key.compareTo(text_max) > 0)){Max = value;text_max = key;}if (value < Min || (value == Min && key.compareTo(text_min) < 0)){Min = value;text_min = key;}*/}System.out.printf("%-10s%8d\n", text_Max, Max);System.out.printf("%-10s%8d\n", text_Min, Min);for (int i = 'A'; i  <= 'Z'; i++){System.out.printf("%-10c%8d\n", i, book[i]);}input.close();}}

SDUT java 单词和字符鉴别器相关推荐

  1. Java IO: 其他字符流(下)

    转载自   Java IO: 其他字符流(下) 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackRe ...

  2. java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?

    java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...

  3. java:单词接龙(dfs)(重点看看:包括相同单词不包含,还有找到第一个相同的开头单词相同的字母,连接字符串重复部分删除)

    java:单词接龙 题目 问题描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在 ...

  4. java 字符串输出字符_输出java字符串

    1-1 字符串排序 用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入 3 Abc Abe Abd 输出: Abc Abd Abe ...

  5. JAVA关于字符串字符数组处理的小题目

    JAVA关于字符串&&字符数组的小题目 第二题:分析以下需求,并用代码实现 1.键盘录入一个大字符串,再录入一个小字符串 2.统计小字符串在大字符串中出现的次数 3.代码运行打印格式: ...

  6. 对文件中的行,单词和字符进行迭代

    编写不同的文本处理和文件操作脚本时,通常需要对文件中的行,单词和字符进行迭代,尽管这个问题看起来很简单,但是实现起来却常常出现问题,下面,就让我们来看看怎样实现上述功能. 为了实现上述的功能,我们需要 ...

  7. 1.8 Java字节流和字符流的区别,如何区分输入流和输出流?

    Java字节流和字符流的区别 首先我们先大概总结一下前面学习的内容,可分为以下几点: 以 Stream 结尾都是字节流,Reader 和 Writer 结尾都是字符流. InputStream 是所有 ...

  8. java保留想要的字符,反转Java中的字符,同时保留一些字符 - java

    我有一个字符串,想要反转它,以便某些字符反转,而其他字符保留在原位.我该如何实现(例如,假设所有数字都留在原处时我希望所有字母都颠倒过来)? 参考方案 您可以为其创建一个自动机: 遍历字符串,将每个字 ...

  9. java中的字符,字符串,数字之间的转换(亲测)

    string 和int之间的转换 string转换成int  :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...

最新文章

  1. 应用流量管理,新网络管理必修课
  2. Oracle中decode的使简单例子
  3. WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现
  4. vue源码解析之选项合并(二)
  5. SpringBoot连接MQTT服务器时因ClintID重复导致频繁掉线重连
  6. python 创建以列表为元素的列表
  7. Angular router-outlet占位符层级结构的子节点,运行时是如何插入的
  8. centos7离线安装mysql_Centos7离线安装metasploit详细教程
  9. 2天后mysql_mysql 学习笔记 第二天
  10. Java中的return this
  11. 利用深度学习识别滑动验证码缺口位置
  12. 005-搭建框架-实现AOP机制【二】AOP技术
  13. 解决谷歌浏览器flash插件已被屏蔽
  14. java里equal与equals_Java中关于==与equal和equals的区别
  15. 攻防世界入门 web 十二题
  16. AirPods pro 连接Macbook pro左耳无声音
  17. 腾讯数据分析师认证!
  18. Clark变换与Park
  19. 【深度学习BookNote】多层感知器(multi-layer perceptron)
  20. Django实现用户管理

热门文章

  1. UG二次开发加载dll,ufusr出错,Failed to load image
  2. 沁恒低功耗M0单片机CH579功耗低至0.2uA——带蓝牙USB以太网等接口
  3. quartz学习笔记7:trading
  4. 互联网人才什么特质最重要——“跨界”
  5. Bugku-Misc合集
  6. 地信(GIS)方向考研~​地理学
  7. Mac 卸载 隐蔽软件 Core_Sync 的步骤
  8. WiFi信号强度--SIGNAL_POLL
  9. 解决labelimg闪退
  10. [程序员面试题精选100题]13.第一个只出现一次的字符