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("程序结束--------------------------------");
}
}
文章:
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
程序结束--------------------------------
然后把这个单词放到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
程序结束--------------------------------
相关文章推荐
- Java实现统计一篇文章中每个单词出现的次数
- java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出
- 【java】统计一篇英文文章每个字母出现的次数
- java 读取键盘输入到txt文件,统计每个单词出现的次数并输出
- Java 读取一段英文文档统计每个单词出现的次数和单词的总数
- Java 统计一个字符串中每个单词,或者字母出现的次数
- Java统计一篇文章中出现次数最多的汉字或英文单词 又出现次数的统计
- Java 统计一个字符串中每个单词,或者字母出现的次数
- java统计文章中单词出现的次数
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法
- Java 读取一段英文文档统计每个单词出现的次数和单词的总数
- 一个利用map统计一段英文文章中每个单词出现次数的小程序
- java统计一篇文章中单词出现的次数
- java 统计10000篇文章中不同单词出现的次数并以次序排序
- java统计一篇文章中单词出现的次数
- N个任务掌握java系列之统计一篇文章中单词出现的次数
- 统计一篇文章中每个单词出现的次数
- 统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数
- java小算法—统计句子中每个单词出现的次数
- JavaScript中模拟java的map键值统计一段英文中各个单词出现的次数