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 ...
随机推荐
- get_template_part()调用自定义模板|wordpress函数
我们在用wordpress开发主题的时候,可能需要调用一段固定的代码比如左侧菜单,这段代码会在主页.栏目页.文章页用到,如果直接写入每个页面模板是没有问题,但是如果要改左侧菜单一个链接那就要改三次,很 ...
- 自定义express中间件
const http = require('http') class LikeExpress { constructor() { this.middleList = [] this.routes = ...
- tensorflow2.0 学习(二)
线性回归问题 # encoding: utf-8 import numpy as np import matplotlib.pyplot as plt data = [] for i in range ...
- CURL shell 使用
#! /bin/bash requrl="http://www.baidu.com/xxxxxx" while true do html=$(curl -s "$requ ...
- 洛谷P2877 [USACO07NOV]防晒霜Sunscreen
题目 此题有多种贪心方法. 首先简化题意: 有几个在数轴上的区间,和几个在数轴上确定的位置的点,问用这些数目的点,最多能满足多少个区间里有点. 注意:此题跟区间选点问题不一样,每个点只能满足一个区间, ...
- Shell的语法
Shell的语法: 变量:字符串.数字.环境和参数: 条件:shell中的布尔值: 程序控制:if.elif.for.while.until.case: 命令列表: 函数: Shell内置命令: 获取 ...
- P1099 树网的核——模拟+树形结构
P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短: 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超 ...
- QML学习(一)——<简要概念知识点>
转载:https://www.cnblogs.com/dengyg0710/p/10644936.html 1.一个 QML 文档有且只有一个根元素. 2.QML 元素名后所有内容使用 {} 包围起来 ...
- [开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码
前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章<ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE>,您可以 ...
- semantic ui要装什么才能使用
作者:呆呆笨笨链接:https://www.zhihu.com/question/32233356/answer/196799506来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...