java-统计一段句子中各单词出现的次数

  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. ————————————————
posted @ 2019-11-24 23:17  沉醉学习、无法自拔  阅读(3664)  评论(0编辑  收藏  举报