`
chenjohney
  • 浏览: 40752 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

使用 HashMap统计文章单词

阅读更多
package johney;

/**
 * 该项止主要查找英语文章中统计出现的单词和次数
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class MyHashMap {

	/**
	 * @param args
	 */
	static HashMap<String, Integer> map;
	File file;
	static String pathname = "abc.txt";
	static FileInputStream fis;
	static String word;// 用来存放抒情诗字符
	static Set set;
	static Iterator iterator;
	static char temp;
	static int count;
	static int i = 0;
	static int number = 1;
	static boolean state = false;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		map = new HashMap<String, Integer>();
		File file = new File(pathname);
		try {
			fis = new FileInputStream(file);
			// System.out.println("The file is exists!");
			count = fis.read();
			// 文件未读完
			while (count != -1) {
				// 转为字符
				temp = (char) count;
				// 若为字母
				if ((temp >= 'a' && temp <= 'z')
						|| (temp >= 'A' && temp <= 'Z')) {
					word = word + temp;
					state = true;
					// System.out.println(word);
				}
				// 若不为字符
				else if (state){
					// 若单词已经存在在映射表map中
					if (word !=" ") {
						if (map.containsKey(word)) {
							number = map.get(word);
							number++;
							map.put(word, number);
							number = 1;
						} else {
							map.put(word, number);
						}
						state = false;
					}
					word = " ";
				}
				// 根据文件格式进行处理
				count = fis.read();
				count = fis.read();
			}
			// 关闭读写流及文件
			fis.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 输出map的内容
		// 获取全部键
		set = map.keySet();
		iterator = set.iterator();
		while (iterator.hasNext()) {
			word = (String) iterator.next();
			number = map.get(word);
			System.out.println(word + ":" + number);
		}
	}

}
分享到:
评论

相关推荐

    查找英文文章中有多少不同的单词以及单词出现的频数

    3. **统计词频**:使用`HashMap`来存储单词及其出现的次数。遍历处理后的单词数组,每次遇到一个单词,如果不在字典中,添加到字典并设置计数为1;如果已经在字典中,将其计数加1。 ```java Map, Integer&gt; ...

    对一篇文章进行按单词统计后哈弗曼编码解码

    在Java中,可以使用`BufferedReader`类读取文件,`String.split()`方法进行单词切分,并使用哈希表(如`HashMap`)存储每个单词及其出现的次数。`WordNum.java`可能就是负责这部分功能的类。 接下来,根据统计结果...

    单词统计排序输出(java的GUI实现)

    3. `countWords`方法:统计每个单词的出现次数,可能使用哈希表(如`HashMap`)来存储结果。 4. `sortAndDisplay`方法:对单词及其计数进行排序,并在GUI的右边对话框中显示。 5. `JFrame`实例化:创建GUI窗口,并...

    java 分析英文文章,并统计每个字母出现的次数

    在Java编程语言中,分析英文...通过以上步骤,我们能够使用Java完成分析英文文章并统计每个字母出现次数的任务。这涉及到了文件I/O、字符处理、数据结构(HashMap)和基本的排序算法,这些都是Java开发中的基础技能。

    JAVA快速统计文章词频.zip

    在Java编程语言中,快速统计文章词频是一项常见的任务,特别是在文本分析、自然语言处理(NLP)和信息检索等领域。这项任务的目标是计算出文本中每个单词出现的次数,以便了解文本的主要主题或者关键词。以下是一些...

    Java词频统计程序MVC

    4. 集合框架,如HashMap用于存储单词和频率。 5. MVC设计模式的理解和应用。 6. Spring框架的基本使用,如果选择使用Spring。 7. UI设计和事件驱动编程,如Swing或JavaFX用于构建图形用户界面。 8. 数据结构和算法,...

    yyc.rar_单词本java

    4. **数据结构**:为了存储和统计单词,程序可能会用到哈希表(HashMap)或者集合(ArrayList)等数据结构,以高效地进行单词查找和计数。 5. **用户界面**:虽然描述中没有明确提及,但为了方便用户交互,程序可能...

    Java中英文文章词频分拣统计器【算法实现、一键分拣】

    4. **词频统计**:使用哈希表(如Java的`HashMap`)存储每个单词及其出现次数,可以高效地进行词频统计。哈希表的查找和插入操作时间复杂度为O(1)。 5. **排序算法**:统计完成后,需要对词频进行排序,可以使用...

    Java统计英文句子中出现次数最多的单词并计算出现次数的方法

    本文主要介绍如何使用Java语言来统计一段英文句子中出现次数最多的单词及其出现的次数。在实现该功能时,涉及到多个Java编程技巧,包括字符串处理、正则表达式应用、映射建立、遍历操作和数据统计等。 首先,为了...

    简单的敏感词统计系统 java

    这需要实现一个搜索算法,例如简单的线性搜索,或者更高效的数据结构如哈希表(HashMap)来存储已统计的单词及其信息。当用户输入查询词时,系统会查找哈希表并返回结果。 此外,系统设计中可能还包括用户界面(UI...

    基于马尔可夫链的文章生成器(java)

    // 统计每个单词之后出现的单词及其频率 for (int i = 0; i ; i++) { String currentWord = words[i]; String nextWord = words[i + 1]; if (!markovChain.containsKey(currentWord)) { markovChain.put(current...

    text-graph-stats:这是一个 Java 应用程序,它接收一篇文章,对其进行标记并分析统计数据或单词。 实现的数据结构是graphadjacent list和内置的hashtables

    - **单词计数**:通过哈希表可以轻松统计文章中每个单词出现的次数,这对于计算词频、识别关键词等分析非常有用。 - **词汇分布**:分析单词的出现频率可以帮助理解文本的词汇分布,如最常见的单词、最不常见的...

    Java编程实现统计数组中各元素出现次数的方法

    本文介绍了Java编程实现统计数组中各元素出现次数的方法,涵盖了数组遍历、HashMap的使用、Iterator的使用、Map.Entry的使用、运算符的使用、控制结构的使用和打印语句的使用等多个知识点。希望本文对大家的Java程序...

    集合与常见的实用类

    - **实现思路**:可以通过将文章中的内容分割成单词,然后使用`HashMap`来记录每个单词出现的次数。具体步骤如下: - 使用正则表达式分割文章内容,得到单词列表。 - 遍历单词列表,使用`HashMap`记录每个单词...

    Bag的实现

    在实际应用中,例如统计文本中单词出现的次数,Bag就非常适用。Bag通常提供添加、删除、检查元素存在以及获取元素数量等操作。 下面我们将深入探讨如何在Java中实现一个简单的Bag: 1. **定义类结构**: 首先,...

    CS-5103-Course-Project-Software-Engineering-Practice:词统计项目

    3. **词频统计**:创建一个数据结构(如HashMap或TreeMap)来存储单词及其出现次数。遍历分词结果,对每个单词进行计数。 4. **结果输出**:最后,将统计结果以某种格式(如按频率降序排列)展示给用户。 在实践中...

    Java集合详解

    通过实践,尝试使用不同的集合类型解决实际问题,例如,统计一段文本中单词出现的频率,或管理一个在线课程的注册学生名单。 ### 附录:排序 排序是处理集合数据的重要操作,Java集合框架提供了`Collections.sort...

    java最新面试题宝典

    9. **文本处理**:"统计文章中英文单词个数.txt"可能涉及到字符串处理和正则表达式,这些都是Java编程中常见的文本处理任务。 10. **编程实践**:"用java实现一个栈结构.txt"和"作的题.txt"可能包含实际编程题目,...

    MarkovTextGenerator

    在MarkovTextGenerator项目中,开发者可能使用了HashMap或TreeMap来存储单词及其后续单词的概率,同时利用ArrayList或LinkedList来管理生成的文本序列。Java的面向对象特性也有助于代码的组织和复用。 此外,项目...

Global site tag (gtag.js) - Google Analytics