`

帮忙看看哪错了

阅读更多

//过了个年,学的忘了好多,准备从数据结构开始复习,复习了TreeMap时就写了个小程序,是一个简单的辞典,就是输出同//义词的

//给定辞典文件和键盘输入的单词,找出其近义词

package TreeMAP;

public class GUI {

	public GUI(ThesaurusDrivers td){}
	public void println(String str){
		System.out.println(str) ;
	}
}



*
 * 一个简单的辞典
 */
package TreeMAP;

import java.util.LinkedList;
import java.util.StringTokenizer;
import java.util.TreeMap;

public class Thesaurus {

	private TreeMap thesaurusMap ;
	
	public Thesaurus(){
		thesaurusMap = new TreeMap() ;
	}
	public void add(String line){
		LinkedList synonymList = new LinkedList() ;
		StringTokenizer st = new StringTokenizer(line) ;
		String word = st.nextToken() ;
		while(st.hasMoreTokens())
			synonymList.add(st.nextToken()) ;
		thesaurusMap.put(word, synonymList) ;
	}
	public LinkedList getSynonyms(String word){
		return (LinkedList)thesaurusMap.get(word) ;
	}
}


package TreeMAP;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;

public class ThesaurusDrivers {

	Thesaurus thesaurus ;
	GUI gui ;
	boolean readingInFileName ;
	
	public ThesaurusDrivers(){
		final String IN_FILE_PROMPT = "Please enter the path for the input file." ;
		gui = new GUI(this) ;
		thesaurus = new Thesaurus() ;
		readingInFileName = true ;
	}
	
	public void processInput(String str){
		
		final String WORD_PROMPT = "\n\nPlease enter a word. The sentinel is " ;
		final String SENTINEL = "***" ;
		final String WORD_NOT_FOUND_MESSAGE ="That word does not appear in hte thesaurus." ;
		final String SYNONYM_MESSAGE = "The synonyms of that word are " ;
		final String CLOSE_WINDOW_MESSAGE = "\n\nThe execution of the project is complete. Please close " + "this window when you are ready." ;
		
		LinkedList synonymList ;
		if(readingInFileName){
			if(thesaurusWasConstructed(str)){
				readingInFileName = false ;
				gui.println(WORD_PROMPT + SENTINEL) ;
			}
		}
		else if(!str.equals(SENTINEL)){
			synonymList = (LinkedList)thesaurus.getSynonyms(str) ;
			if(synonymList == null)
				gui.println(WORD_NOT_FOUND_MESSAGE) ;
			else{
				gui.println(SYNONYM_MESSAGE + synonymList) ;
				gui.println(WORD_PROMPT + SENTINEL) ;
			}			
		}
		else{
			gui.println(CLOSE_WINDOW_MESSAGE) ;
		}
	}
	
	protected boolean thesaurusWasConstructed (String inFileName){
		
		final String NO_INPUT_FILE_FOUND_MESSAGE = "Error: there is no file with that path. \n\n" ;
		final String ERROR_MESSAGE = "Exception:" ;
		final String IN_FILE_PROMPT = "Please enter the path for the input file." ;
		
		BufferedReader inFile ;
		String line ;
		boolean success = false ;
		
		try{
			inFile = new BufferedReader(new FileReader(inFileName)) ;
			success = true ;
			while((line = inFile.readLine()) != null)
				thesaurus.add(line) ;
			inFile.close() ;
		}catch(FileNotFoundException e){
			gui.println(NO_INPUT_FILE_FOUND_MESSAGE + IN_FILE_PROMPT) ;
		}catch(IOException e){
			gui.println(ERROR_MESSAGE + e) ;
		}
		return success ;
	}
}


package TreeMAP;

public class Test_Thesaurus {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
	
		ThesaurusDrivers td = new ThesaurusDrivers() ;
		td.processInput("thesaurus.in") ;
	}

}

/***/
/***thesaurus.in:

close near confined 
confined cramped 
correct true 
cramped confined 
near close 
one singular unique 
singular one unique 
true correct 
unique singular one
***/



 
 
0
2
分享到:
评论

相关推荐

    权限管理系统,但是无法实现其功能,请大家帮忙看看错在哪里

    delphi做的权限系统,请大家帮忙看看错在哪,我无法实现其功能

    我编了一个程序不知道那李出了错请大家看看

    我编了一个程序不知道那李出了错请大家看看,请大家帮帮忙啊!

    简单的信息输入

    我自己写的一段代码,有一点没调通,发出来共享下 同时也请过路高手帮忙看看到底错在那里? 2290136@163.com

    小天才G3内置应用(必须看资源描述,不然您可能错过一个绝对流量)

    这个压缩包里全是apk,并且全是小天才内置应用的apk,我希望各位大佬帮忙做成刷机包(具体操作是先下载一个安卓4.几的wearos刷机包,然后进入这个刷机包中的一个目录(usr-app)把app文件夹中的应用全删了,并替换成...

    js查错流程归纳

    1、确保您的页面元素标记是有效的 2、使用调试工具(例如:Firebug),看看是否有异常 3、引用文件或依赖模块或方法是否有效 4、减少到最小测试用例(保持删除的东西,直到问题消失等) 5、问题描述尽量简洁,保持...

    it日语单词 chinesewriter查不到的单词 式样看不懂用得着的

    【声明】 以前的我可能资源搞错,真对不起那些下载了的朋友们。...有将近8000个日语单词,在你日语式样看不明白的时候绝对用的着,而且在chinesewriter查不到单词的时候也可以找个这个帮忙,很简单只需crtl+f

    MapReduce开发案例

    我的第一个MapReduce程序,对基础代码进行了,些许的优化,如果是才开始学的可以参考一下,老手emmm,帮忙看错,嘻嘻(最后要加上fs.close(); 作者打包的时候忘了加了)

    arpqipian.rar_GetAdaptersInfo_arp_arp 欺骗_arp欺骗_数据 结构体

    朋友帮忙看了下源代码...发现 字节问题...一个ARP包 的字节是 多少来着 不记得了 但是我的2个结构体加起来 是超过了那个 字节 为什么会这样呢 ? 因为结构体 有自动 数据对齐的功能 详细情况 大家也应该清楚 然后我就...

    运行无响应的聊天程序

    不显示删除回复显示所有回复显示星级回复显示得分回复 基于MFC和winsock的网络聊天程序 编译没错,但运行后没响应,大家帮帮忙给看下.

    ionic-course:使用 thinkster 离子教程

    我们将看看情况如何。 掌握Ionic框架:学习构建和部署基于Native Speed HTML5的应用程序 该存储库包含的的减价和代码。 对于错别字,代码错误等,拉取请求非常受欢迎:) 设置基础项目 导航到/ code /文件夹,然后...

    金钱永不眠 v2016.12.20网页版

    1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...

    金钱永不眠软件官方正版注册版 v20161205.part2

    1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...

    金钱永不眠软件官方正版注册版 v20161205.part1

    1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...

    Selenium+python爬虫

    非常荣幸的受作者邀请来帮忙写这个序,诚惶诚恐,何德何能? 不记得何时开始认识的作者了。当初只是作为一个自学者混迹于各个技术群中,后来发现几乎每个群 里每天充斥着大量的垃圾信息,QQ 不停的闪动,看吧?!都...

    epson r230双灯齐闪的方法

    要是打印头下的传感器没问题,你可以看一下连那个传感器的头缆! 回复: 经过再次检查发现主板上BD3980F芯片有点烫手,不知是否跟这有关 回复 不知道了,我的情况和你所说的一样,以前修过好多,但是从来还没有见到如这...

    爱普生r230清零软件

    要是打印头下的传感器没问题,你可以看一下连那个传感器的头缆! 回复: 经过再次检查发现主板上BD3980F芯片有点烫手,不知是否跟这有关 回复 不知道了,我的情况和你所说的一样,以前修过好多,但是从来还没有见到如这...

    迪兰RX550超能4G开核BIOS

    朋友有卖迪兰显卡,正好也在一个地方住,打了个电话,600元以内的卡,最终选定了RX550超能4G(D5,128bit),下班后帮忙带回来给我。 迪兰RX550超能4G,这玩意儿居然可以开核?!! 迪兰RX550超能4G,这...

    java猜数字源码-XSS-Filter-Evasion-Cheat-Sheet-CN:XSS_Filter_Evasion_Cheat_Sh

    很多人仅仅是简单的把文中的各种代码复制下来,然后看起来很刁的发在各种论坛上,不过你要真去认真研读这些代码,就会完全不知所云了。原因是这篇文章最精华的部分是代码的解释而非代码本身。 一方面为了自己学习,...

    Thinkpad Slic2.1 marker OEMWindows7

    希望这个对大家有帮忙。教程中所提到的方法和工具,仅供参考,本人不承担任何可能的风险和法律责任。谢谢! 1、如何Marker? 注意:刷过破解版bios的朋友,务必先刷成官方bios!已经是官方bios的略过此步。在这里...

    Thinkpad slic2.1 marker

    希望这个对大家有帮忙。 1、如何Marker? 注意:刷过破解版bios的朋友,务必先刷成官方bios!已经是官方bios的略过此步。在这里还是假设你不是太菜鸟,知道怎么刷bios。 1)首先确定自己Thinkpad机型对应的slic2.1...

Global site tag (gtag.js) - Google Analytics