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

用java实现一道c笔试题

2012-03-16 20:45 225 查看
  今天偶然在网上看到以前的一道笔试题目,大概是这样的:从文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中。

  该题目用c实现,主要思路是:用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出即可。

  c代码如下:

View Code

package cn.com.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class test {

/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
//in 可以读取文件
Scanner in = new Scanner(new File("text.in"));
//构造map
Map map = new TreeMap();

while(in.hasNext())
{
//获取map的entrySet
Set entrySet = map.entrySet();
//获取set的迭代器
Iterator i = entrySet.iterator();
String temp = in.next().toString();
boolean sign = false;
while(i.hasNext())
{
Map.Entry entry = (Map.Entry) i.next();
if(temp.equals(entry.getKey()))
{
int value = Integer.parseInt(entry.getValue().toString())+1;
entry.setValue(value);
sign = true;
}
}
if(!sign)
{
map.put(temp, 1);
}
}
//关闭流
in.close();
Set entrySet = map.entrySet();
Iterator i = entrySet.iterator();
PrintWriter out = new PrintWriter("word.out");
while(i.hasNext())
{
Map.Entry entry = (Map.Entry)i.next();
System.out.println(entry.getKey()+"======="+entry.getValue());
out.printf("%s %d\n",entry.getKey(),entry.getValue());
}
out.close();

}

}


这样,就用Java实现了该题目,欢迎各位同行指导,转载。

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: