java-统计一段句子中各单词出现的次数
- 问题:统计一段句子中各单词出现的次数。
- 思路:
- 1、使用split方法将文章进行分割,我们这里以空格、逗号和句点为分隔符,然后存到一个字符串数组中。
- 2、创建一个hashMap集合,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。
- 3、遍历思路1中的字符串数组,如果key(单词)没有出现过,map中增加一个元素,key为该单词,定义value为1;如果key(单词)出现过,那么value的值加1。
- 4.遍历输入key及其对应的value值。
- 具体代码如下:
- StrList类,实现统计单词出现次数的方法。
- package wordCounts;
- import java.util.HashMap;
- import java.util.Map.Entry;
- public class StrList {
- public String StatList(String s) {
- StringBuffer sb = new StringBuffer();
- HashMap<String, Integer> has = new HashMap<String,Integer>();//打开哈希表,字符类型储存key(单词),整型储存value(单词出现的次数)
- String[] sList = s.split(" |,|\\.");//使用split方法将字符串s按空格、逗号和句点分割开,并存在字符数组sList中
- for(int i=0; i<sList.length; i++){//遍历sList数组
- if(!has.containsKey(sList[i])){//如果没有这个单词,就将单词存入key里,value值为1;containsKey方法 判断集合中是否包含指定的key
- has.put(sList[i], 1);
- }else{//如果已经存在,就将value值加1;用get方法获取key对应的value值
- has.put(sList[i], has.get(sList[i])+1);
- }
- }
- //使用增强for循环遍历,通过Entry集合访问,可以访问key及其对应的Value值
- for(Entry<String, Integer> entry:has.entrySet()){
- System.out.println(entry.getKey()+":"+entry.getValue());
- }
- return sb.toString();
- }
- }
- main方法(创建另一个类):
- 方式一:已经指定好了句子
- package wordCounts;
- import java.util.Scanner;
- public class WordCounts{
- public static void main(String[] args) {
- String sentence = "The most distant way in the world,"
- + "is not the way from birth to the end. "
- + "It is when I stand in front of you,"
- + "but you don't understand I love you.";
- System.out.println(StatList(sentence));
- }
- }
- 方式二:从键盘输入
- package wordCounts;
- import java.util.Scanner;
- public class WordCounts{
- public static void main(String[] args) {
- @SuppressWarnings("resource")
- Scanner scanner = new Scanner(System.in);
- String ab = scanner.nextLine();
- StrList sl = new StrList();
- System.out.println(sl.StatList(ab));
- }
- }
- ————————————————
java-统计一段句子中各单词出现的次数的更多相关文章
- C++统计一段文字中各单词出现的频率
#include <iostream> using namespace std; /* run this program using the console pauser or add y ...
- Python3求英文文档中每个单词出现的次数并排序
[本文出自天外归云的博客园] 题目要求: 1.统计英文文档中每个单词出现的次数. 2.统计结果先按次数降序排序,再按单词首字母降序排序. 3.需要考虑大文件的读取. 我的解法如下: import ch ...
- HashMap 统计一个字符串中每个单词出现的次数
HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...
- 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)
<?php/**练习:统计一段字符串中所有元音字母的个数(区分大小写)*/$str='This is a test file.'; //原始字符串echo $str.'<br>'; ...
- Javascript 将一个句子中的单词首字母转成大写
Javascript 将一个句子中的单词首字母转成大写 先上代码 function titleCase(str) { str = str.toLowerCase().split(" &quo ...
- python统计文本中每个单词出现的次数
.python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...
- 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学
编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...
- 统计一段文字中出现频率最高的10个单词(c语言)
注:这次使用C语言做的这个程序.个别不懂的地方和算法部分是请教的其他同学,交流并吸收,所以收获颇多! 在程序中每一个地方我都做了注释,方便同学之间交流.也让老师容易看.程序也有很多不足的地方,但限于本 ...
- java通过StringToKenizer获取字符串中的单词根据空格分离-简写版
public class StringToKenizer { public static void main(String[] args) { String strin = "Hello J ...
随机推荐
- PageHelper分页正确用法
依赖和配置就不说了,说用法 Page<Object> page = PageHelper.startPage(pageNum, pageSize); List<SysRoleDTO& ...
- wordpress调用自定义菜单
wordpress要调用自定义菜单首先要注册菜单,将代码添加到主题文件夹下的function.php中,比如wordpress自带主题2019的定义如下 // This theme uses wp_n ...
- EventWaitHandle 第一课
本篇通过一个列子使用EventWaitHandle实现两个线程的同步.请参看下面的列子. using System; using System.Collections.Generic; using S ...
- ARDUNIO IMU processing姿态数据可视化
https://www.arduino.cn/thread-42852-1-1.html 关键数据打包 float roll, pitch, heading; Serial.print("O ...
- 英语听力,如何成为更好的交谈着https://www.bilibili.com/video/av4279405?from=search&seid=5889429711390689339
and how many of you know at least one person that you because you just do not want to talk to them.y ...
- bfs与dfs小结
1,bfs适合状态容易存储的题目,如果状态比较难存储,就难以进行记忆化搜索,必然会难以bfs. (比如听说滑雪这个题你用bfs会死得很难看) 2,但是有些题目会很深(比如网格单源最短路),用dfs会跑 ...
- Windbg命令的语法规则系列(一)
本文介绍使用调试器命令必须遵循的语法规则.使用Windbg调试时,应遵守以下一般语法规则: 您可以在命令和参数中使用大小写字母的任意组合,除非在本节的主题中特别指出. 可以用一个或多个空格或逗号(,) ...
- delphi调用https接口
delphi调用http接口直接使用idhttp就可以了,但是调用https接口的时候就需要和IdSSLIOHandlerSocket1控件一起使用. 截图中是两个控件的具体配置,需要注意的是IdSS ...
- Programming a robot
题目链接:Gym - 101492H 自己的纯暴力做法: /* */ # include <iostream> # include <cstdio> # include < ...
- 「APIO2018」选圆圈
传送门 Description 有\(n\)个圆,每次找到这些圆中半径最大中的编号最小的圆,删除ta及与其有交集的所有圆. 对于每个圆,求出它是被哪一个圆删除的. Solution K-D Tree ...