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 ...
随机推荐
- shell部分面试题
1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#f ...
- Git学习笔记--历史与安装(一)
声明:今天起学习Git,第一篇学习笔记主要借鉴廖雪峰先生的个人博客,以及自己的实践所得. “本教程只会让你成为Git用户,不会让你成为Git专家”——引自廖雪峰博客. 一.Git简介 Git是目前世界 ...
- [CodeForces 663E] - Binary Table(FWT)
题目 Codeforces 题目链接 分析 大佬博客,写的很好 本蒟蒻就不赘述了,就是一个看不出来的异或卷积 精髓在于 mask对sta的影响,显然操作后的结果为mask ^ sta AC code ...
- 树的点分治 板题 Luogu P3806
给定一棵有n个点的树 询问树上距离为k的点对是否存在. AC code: #include<bits/stdc++.h> using namespace std; const int MA ...
- 洛谷 P3183 [HAOI2016]食物链 题解
P3183 [HAOI2016]食物链 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形 ...
- 【NOIP2014】真题回顾
题目链接 生活大爆炸版石头剪刀布 就是个模拟,不说了 联合权值 枚举每个点,统计它任意两个儿子的联合权值,统计的时候维护sum和max就行了 飞扬的小鸟 比较好的DP题,不难想到用dp[i][j]表示 ...
- Mac的移动硬盘不能装载该如何解决?
昨天拔硬盘时,不能弹出,赶着要睡觉,就直接拔掉USB接口,谁料到今天再插进去,电脑不能识别,无法装载了. 我的天那, 里面很多重要资料,我以为硬盘坏了,要重新格盘了...T T 还好在网上找到了大神们 ...
- GoCN每日新闻(2019-10-07)
GoCN每日新闻(2019-10-07) 国庆专辑:GopherChina 祝大家国庆节快乐(假期最后一天) GoCN每日新闻(2019-10-07) 1. Go 不好的点:JSON 解析的探 ...
- java学习笔记(4)运算符
java中的运算符分为以下几种: 算数运算符 +.-.*./.++.--.% 关系运算符 <.<=.>.>=.==.!= 布尔运算符 &&.||.&.| ...
- inotify 监控文件系统操作
path0=path1=########################################################dir2watch1=/home/nanjing2/GridON ...