`
peterliuye
  • 浏览: 21504 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

一次面试碰到的机试题:计数分词器---文件读写,比较排序,计数统计(觉得偏基础,值得关注)

阅读更多
package com.accp.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;


/*
 * 
 * version:1.1
 * author:liuye
 * 实现功能:
 *   1,将已知文件读写到另一个文件中
 *   2,对文件内容每个单词分开换行输出
 *   3,根据单词大小排序
 *   4,统计相同单词出现的次数,即词频
 *   5,文件读到文件写完所用的时间 
 * 
 */


public class SimpleWordMachine {
	//利用字符流进行文件读写
	public static void main(String[] args) throws IOException {
		String strPath="C:\\Documents and Settings\\Administrator\\桌面\\message.txt";
		//文件读
		FileReader fileReader=new FileReader(strPath); 
		BufferedReader bufferedReader=new BufferedReader(fileReader);
		char[] strChar=new char[10000];
		
		Integer num=bufferedReader.read();

		StringBuffer strMessage="";	
	//循环读文件,readLine()每次只读一行
		while(bufferedReader.ready())	{strMessage+=bufferedReader.readLine();
}						
	//关闭
		bufferedReader.close();
		fileReader.close();
		
		//这里确定时间,什么时候开始
		Calendar calendar=Calendar.getInstance();
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY)+"时"+calendar.get(Calendar.MINUTE)+"分"+calendar.get(Calendar.SECOND)+"秒");
		
		//文件内容用空格分开
		String[] strNum=strMessage.split(" ");

		
		//比较数组元素中两个字符串的大小,并且排序列出
		try {
			for (int i = 0; i < strNum.length; i++) {
				for (int j = 0; j < strNum.length-1; j++) {
					if(strNum[j].compareTo(strNum[j+1])>0)
					{
						//交换位置
						String abc=strNum[j];
						strNum[j]=strNum[j+1];
						strNum[j+1]=abc;
					}
//					System.out.println(strNum[i].compareToIgnoreCase(strNum[j]));
//					System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
//					System.out.println(strNum[5]);
//					System.out.println(strNum[6]);
//					System.out.println(strNum[5].compareTo(strNum[6]));
////					System.out.println(strNum[5].compareToIgnoreCase(strNum[]));
					
				}
			}
			//排序后列出
			
			//定义声明变量;
			int numA;
			int numB=1;
			System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
			//业务逻辑实现,比较并计算重复的元素出现的次数
			for (int i = 0; i < strNum.length-1; i++) {
				System.out.println(strNum[i]);
				//赋值
				numA=0;
				if(strNum[i].compareToIgnoreCase(strNum[i+1])==0)
				{
					//比较的始终是两个数,则比较基数是2个数,则单个相同单词出现的次数基数也是2,然后累加。
					numB+=++numA;
					System.out.println(strNum[i]+"出现了-------------"+numB+"次");
				}
				else
				{
					//不相等,则将numB的值还原
					numB=1;
				}
			}
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");

		//先写在这里,然后到后面功能实现的时候在写进去.,文件写,注意转义字符\
		FileWriter fileWriter=new FileWriter("C:\\Documents and Settings\\Administrator\\桌面\\liuye\\java.txt");
		BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
		for (int i = 0; i < strNum.length; i++) {
			bufferedWriter.write(strNum[i]+"\n");
			System.out.println(strNum[i]);
			
		}
		bufferedWriter.close();
		fileWriter.close();
		
		
		//文件写完所用的时间
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY)+"时"+calendar.get(Calendar.MINUTE)+"分"+calendar.get(Calendar.SECOND)+"秒");
		
		
	}
	
	
	
	
}

 

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 regardless3721 2010-08-27  
你怎么瞎改呢!山寨可耻!

相关推荐

    Python期末试题题库.docx

    ### Python期末试题题库知识点解析 #### 一、逻辑运算符 **题目**: 下面描述错误的是? **选项**: - A. 若a=True,b=False则a or b为True - B. 若a=True,b=False则a and b为False - C. 若a=True,b=False则not a为...

    WBDC.rar_c text word count_单词检索_文本 检索 visual_文本文件读写

    单词计数分为两部分:一是检索过程中统计每个特定单词出现的次数,二是计算整个文件中的总单词数。前者需要一个哈希表或关联数组来存储每个单词及其出现次数;后者则需要遍历整个文件,每遇到一个空格、标点符号或...

    Bigram-Counting-with-HBase:使用 HBase 进行 Bigram 计数

    在大数据处理领域,HBase作为一个分布式列式存储系统,常被用于海量数据的实时查询与分析。本项目“Bigram-Counting-with-HBase”旨在介绍如何利用HBase进行二元组(Bigram)计数,这对于自然语言处理、文本挖掘等...

    elasticsearch介绍-.zip

    Elasticsearch 的聚合功能允许对搜索结果进行统计分析,例如求平均值、计数、分桶等,可用于数据探索和可视化。 ### 五、实时性与弹性 由于采用分布式架构,Elasticsearch 可以快速响应读写请求,支持水平扩展,只...

    Python期末试题题库.pdf

    从提供的文件内容中,我们可以看到涉及了Python编程语言的一些核心知识点。接下来,我将根据文档中出现的内容,总结并详细解释相关的知识点。 1. Python中的布尔运算符 - `or` 是逻辑或运算符,如果两边的表达式有...

    C++_String

    `std::string` 可以与文件流进行交互,实现文件读写操作。 **示例代码**: ```cpp std::string s; std::ifstream file("input.txt"); std::getline(file, s); std::ofstream output("output.txt"); output ; ``` #...

    awk_toys:awk 脚本 - 有些有用,有些没有

    1. **统计单词计数**:一个简单的脚本可以用来统计文件中单词出现的次数,这利用了awk的分词能力,将文本分割成字段并进行计数。 2. **查找模式**:awk可以高效地搜索文本文件,查找特定模式或字符串,这对于日志...

    vocabularyOfFile_c_Vocabulary_

    7. **计数与统计**:项目可能涉及到统计文件中每个词汇出现的次数,这可以通过计数器或哈希表实现。 8. **排序与输出**:最后,结果可能需要按照词汇出现频率进行排序,并输出到终端或文件中。这可能用到`qsort()`...

    詹卫东 c++中文信息处理

    例如,可以设计一个词典数据结构,存储常用词汇及其对应的权重,然后通过比较输入文本中的连续字符序列与词典中的词进行匹配来完成分词。 其次,汉字字频统计涉及到统计文本中每个汉字出现的次数,这对于了解文本的...

    hadoop学习之wordCount以及文件上传demo,经测试通过

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力,使得海量数据的处理变得可能。本文将深入探讨Hadoop中的WordCount示例和文件上传过程,这些内容是理解Hadoop基本操作的关键。 ...

    小学英语语法大全-附练习题.doc

    小学英语语法是学习英语的基础,尤其对于初学者来说至关重要。以下是对文档中涉及的英语语法知识点的详细解释: **第一章 名词** 1. **名词的数** - **单数和复数形式**:名词有单数和复数两种形式。单数用于表示...

    精通英语五年级上册复习总结.pdf

    小学阶段的英语学习是英语教育的基础,而五年级上册的《精通英语》教材则针对这一阶段的学生设计了丰富的教学内容。本复习总结主要涵盖了以下几个关键知识点: 1. **话题词汇**: - 家庭成员:这部分内容帮助学生...

    java面向程序设计数组、字符串、枚举、泛型的应用[参照].pdf

    统计单词数量通常需要对输入的字符串进行分词,可以使用`split()`方法按空格或标点符号分割字符串,然后计数。 以上就是Java面向对象程序设计中关于数组、字符串、枚举、泛型等知识点的应用实例,这些基础知识对于...

    语法英语语法复习概论一学习教案.pptx

    10. **非谓语动词**:非谓语动词包括动词不定式(to do),动名词(doing)和分词(过去分词done,现在分词doing)。它们在句子中作为名词、形容词或副词使用,不作为谓语。 11. **动词**:动词是表达动作、状态或存在的词...

    poc_stream_word_count

    - **生成器(Generator)**:Python 中的生成器可以有效地处理大文件或无尽的数据流,因为它允许在内存中只保留单个元素,而不是一次性加载所有数据。 - **`itertools.groupby()`**:这个函数可用于对连续重复的...

    duplicate-string-detector

    《重复字符串检测器——深入解析JavaScript实现》 在软件开发中,处理文本数据时经常会遇到查找和处理重复字符串的问题。"duplicate-string-detector"项目就是一个专门用于检测文本中重复字符串的实用工具,它利用...

    基于深度神经网络的标题分类研究.pdf

    在Python环境中,可以使用诸如xlrd和xlwt这样的库读写Excel文件,jieba进行中文分词,NumPy进行数值计算,Scikit-learn库中的CountVectorizer、TfidfTransformer和SVC分别用于特征提取和模型训练。 4. 深度神经网络...

    【MapReduce篇01】MapReduce之入门概述1

    MapReduce是一种基于Hadoop的分布式计算框架,用于处理和生成大规模数据集。它的核心思想是将复杂的并行处理任务分解为两个主要阶段:Map阶段和Reduce阶段,中间通过Shuffle和Sort过程进行数据的整理和分发。 Map...

    超级多的C#辅助类大全

    网上有各式各样的帮助类,公共类,但是比较零碎,经常有人再群里或者各种社交账号上问有没有这个helper,那个helper,于是萌生了收集全部helper的念头,以便日后使用。各式各样的几乎都能找到,所有功能性代码都是独立...

    自己写的一些代码

    这些代码涵盖了多个编程...每个文件都是一个独立的编程挑战,涵盖了不同的主题和技能,从基础的数据结构和算法到更复杂的系统编程和图形处理。学习和理解这些代码可以帮助提升编程能力,尤其是问题解决和算法设计方面。

Global site tag (gtag.js) - Google Analytics