您的位置:首页 > 编程语言 > Java开发

java 统计文章中每个单词出现的次数

2017-12-20 20:27 656 查看
思路:扫描文章,使用正则表达式分割出一个个单词,

然后把这个单词放到map<String,Integer>集合中作为key,同时它的value置1,以后每扫描到一个单吃都去检查map里面有没有这个单词,如果有value就加1,然后再放回map中更新value。

package pattern;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;

public class splitWords
{
public static void main(String[] args) throws FileNotFoundException
{
File file=new File("C:\\Users\\Administrator\\Desktop\\English.txt");
if(!file.exists())
{
System.out.println("文件不存在");
return;
}
Scanner scanner=new Scanner(file);
//单词和数量映射表
HashMap<String, Integer > hashMap=new HashMap<String,Integer>();
System.out.println("文章-----------------------------------");
while(scanner.hasNextLine())
{
String line=scanner.nextLine();
System.out.println(line);
//\w+ : 匹配所有的单词
//\W+ : 匹配所有非单词
String[] lineWords=line.split("\\W+");//用非单词符来做分割,分割出来的就是一个个单词

Set<String> wordSet=hashMap.keySet();
for(int i=0;i<lineWords.length;i++)
{
//如果已经有这个单词了,
if(wordSet.contains(lineWords[i]))
{
Integer number=hashMap.get(lineWords[i]);
number++;
hashMap.put(lineWords[i], number);
}
else
{
hashMap.put(lineWords[i], 1);
}
}

}
System.out.println("统计单词:------------------------------");
Iterator<String> iterator=hashMap.keySet().iterator();
while(iterator.hasNext())
{
String word=iterator.next();

// System.out.printf("单词: "+word+"出现次数:"+hashMap.get(word));
System.out.printf("单词:%-12s 出现次数:%d\n",word,hashMap.get(word));
}

System.out.println("程序结束--------------------------------");
}
}
文章:
"C:\\Users\\Administrator\\Desktop\\English.txt"

Studies serve for delight, for ornament, and for ability.
Their chief use for delight.运行结果:
文章-----------------------------------
Studies serve for delight, for ornament, and for ability.
Their chief use for delight.
统计单词:------------------------------
单词:Studies 出现次数:1
单词:ornament 出现次数:1
单词:and 出现次数:1
单词:chief 出现次数:1
单词:use 出现次数:1
单词:for 出现次数:4
单词:Their 出现次数:1
单词:serve 出现次数:1
单词:ability 出现次数:1
单词:delight 出现次数:2
程序结束--------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: