1. 问题:统计一段句子中各单词出现的次数。
  2. 思路:
  3. 1、使用split方法将文章进行分割,我们这里以空格、逗号和句点为分隔符,然后存到一个字符串数组中。
  4. 2、创建一个hashMap集合,key是字符串类型,保存单词;value是数字类型,保存该单词出现的次数。
  5. 3、遍历思路1中的字符串数组,如果key(单词)没有出现过,map中增加一个元素,key为该单词,定义value为1;如果key(单词)出现过,那么value的值加1。
  6. 4.遍历输入key及其对应的value值。
  7. 具体代码如下:
  8. StrList类,实现统计单词出现次数的方法。
  9. package wordCounts;
  10. import java.util.HashMap;
  11. import java.util.Map.Entry;
  12. public class StrList {
  13. public String StatList(String s) {
  14. StringBuffer sb = new StringBuffer();
  15. HashMap<String, Integer> has = new HashMap<String,Integer>();//打开哈希表,字符类型储存key(单词),整型储存value(单词出现的次数)
  16. String[] sList = s.split(" |,|\\.");//使用split方法将字符串s按空格、逗号和句点分割开,并存在字符数组sList中
  17. for(int i=0; i<sList.length; i++){//遍历sList数组
  18. if(!has.containsKey(sList[i])){//如果没有这个单词,就将单词存入key里,value值为1;containsKey方法 判断集合中是否包含指定的key
  19. has.put(sList[i], 1);
  20. }else{//如果已经存在,就将value值加1;用get方法获取key对应的value值
  21. has.put(sList[i], has.get(sList[i])+1);
  22. }
  23. }
  24. //使用增强for循环遍历,通过Entry集合访问,可以访问key及其对应的Value值
  25. for(Entry<String, Integer> entry:has.entrySet()){
  26. System.out.println(entry.getKey()+":"+entry.getValue());
  27. }
  28. return sb.toString();
  29. }
  30. }
  31. main方法(创建另一个类):
  32. 方式一:已经指定好了句子
  33. package wordCounts;
  34. import java.util.Scanner;
  35. public class WordCounts{
  36. public static void main(String[] args) {
  37. String sentence = "The most distant way in the world,"
  38. + "is not the way from birth to the end. "
  39. + "It is when I stand in front of you,"
  40. + "but you don't understand I love you.";
  41. System.out.println(StatList(sentence));
  42. }
  43. }
  44. 方式二:从键盘输入
  45. package wordCounts;
  46. import java.util.Scanner;
  47. public class WordCounts{
  48. public static void main(String[] args) {
  49. @SuppressWarnings("resource")
  50. Scanner scanner = new Scanner(System.in);
  51. String ab = scanner.nextLine();
  52. StrList sl = new StrList();
  53. System.out.println(sl.StatList(ab));
  54. }
  55. }
  56. ————————————————

java-统计一段句子中各单词出现的次数的更多相关文章

  1. C++统计一段文字中各单词出现的频率

    #include <iostream> using namespace std; /* run this program using the console pauser or add y ...

  2. Python3求英文文档中每个单词出现的次数并排序

    [本文出自天外归云的博客园] 题目要求: 1.统计英文文档中每个单词出现的次数. 2.统计结果先按次数降序排序,再按单词首字母降序排序. 3.需要考虑大文件的读取. 我的解法如下: import ch ...

  3. HashMap 统计一个字符串中每个单词出现的次数

    HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...

  4. 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)

    <?php/**练习:统计一段字符串中所有元音字母的个数(区分大小写)*/$str='This is a test file.'; //原始字符串echo $str.'<br>'; ...

  5. Javascript 将一个句子中的单词首字母转成大写

    Javascript 将一个句子中的单词首字母转成大写 先上代码 function titleCase(str) { str = str.toLowerCase().split(" &quo ...

  6. python统计文本中每个单词出现的次数

    .python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...

  7. 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学

    编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...

  8. 统计一段文字中出现频率最高的10个单词(c语言)

    注:这次使用C语言做的这个程序.个别不懂的地方和算法部分是请教的其他同学,交流并吸收,所以收获颇多! 在程序中每一个地方我都做了注释,方便同学之间交流.也让老师容易看.程序也有很多不足的地方,但限于本 ...

  9. java通过StringToKenizer获取字符串中的单词根据空格分离-简写版

    public class StringToKenizer { public static void main(String[] args) { String strin = "Hello J ...

随机推荐

  1. shell部分面试题

    1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#f ...

  2. Git学习笔记--历史与安装(一)

    声明:今天起学习Git,第一篇学习笔记主要借鉴廖雪峰先生的个人博客,以及自己的实践所得. “本教程只会让你成为Git用户,不会让你成为Git专家”——引自廖雪峰博客. 一.Git简介 Git是目前世界 ...

  3. [CodeForces 663E] - Binary Table(FWT)

    题目 Codeforces 题目链接 分析 大佬博客,写的很好 本蒟蒻就不赘述了,就是一个看不出来的异或卷积 精髓在于 mask对sta的影响,显然操作后的结果为mask ^ sta AC code ...

  4. 树的点分治 板题 Luogu P3806

    给定一棵有n个点的树 询问树上距离为k的点对是否存在. AC code: #include<bits/stdc++.h> using namespace std; const int MA ...

  5. 洛谷 P3183 [HAOI2016]食物链 题解

    P3183 [HAOI2016]食物链 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形 ...

  6. 【NOIP2014】真题回顾

    题目链接 生活大爆炸版石头剪刀布 就是个模拟,不说了 联合权值 枚举每个点,统计它任意两个儿子的联合权值,统计的时候维护sum和max就行了 飞扬的小鸟 比较好的DP题,不难想到用dp[i][j]表示 ...

  7. Mac的移动硬盘不能装载该如何解决?

    昨天拔硬盘时,不能弹出,赶着要睡觉,就直接拔掉USB接口,谁料到今天再插进去,电脑不能识别,无法装载了. 我的天那, 里面很多重要资料,我以为硬盘坏了,要重新格盘了...T T 还好在网上找到了大神们 ...

  8. GoCN每日新闻(2019-10-07)

    GoCN每日新闻(2019-10-07) 国庆专辑:GopherChina 祝大家国庆节快乐(假期最后一天)   GoCN每日新闻(2019-10-07)   1. Go 不好的点:JSON 解析的探 ...

  9. java学习笔记(4)运算符

    java中的运算符分为以下几种: 算数运算符 +.-.*./.++.--.% 关系运算符 <.<=.>.>=.==.!= 布尔运算符 &&.||.&.| ...

  10. inotify 监控文件系统操作

    path0=path1=########################################################dir2watch1=/home/nanjing2/GridON ...