//过了个年,学的忘了好多,准备从数据结构开始复习,复习了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
***/
分享到:
相关推荐
在IT行业中,权限管理系统是确保数据安全和操作合规性的重要组成部分。Delphi是一种流行的Object Pascal编程环境,常用于开发桌面应用程序,包括权限控制系统。针对您提到的问题,我们需要深入理解Delphi中的权限...
这个压缩包里全是apk,并且全是小天才内置应用的apk,我希望各位大佬帮忙做成刷机包(具体操作是先下载一个安卓4.几的wearos刷机包,然后进入这个刷机包中的一个目录(usr-app)把app文件夹中的应用全删了,并替换成...
1、确保您的页面元素标记是有效的 2、使用调试工具(例如:Firebug),看看是否有异常 3、引用文件或依赖模块或方法是否有效 4、减少到最小测试用例(保持删除的东西,直到问题消失等) 5、问题描述尽量简洁,保持...
【声明】 以前的我可能资源搞错,真对不起那些下载了的朋友们。...有将近8000个日语单词,在你日语式样看不明白的时候绝对用的着,而且在chinesewriter查不到单词的时候也可以找个这个帮忙,很简单只需crtl+f
朋友帮忙看了下源代码...发现 字节问题...一个ARP包 的字节是 多少来着 不记得了 但是我的2个结构体加起来 是超过了那个 字节 为什么会这样呢 ? 因为结构体 有自动 数据对齐的功能 详细情况 大家也应该清楚 然后我就...
我们将看看情况如何。 掌握Ionic框架:学习构建和部署基于Native Speed HTML5的应用程序 该存储库包含的的减价和代码。 对于错别字,代码错误等,拉取请求非常受欢迎:) 设置基础项目 导航到/ code /文件夹,然后...
1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...
1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...
1、 一款无需分析师帮忙的机器人智能决策软件 2、金钱永不眠,黄蓝带双剑合一实战做空的方法 3、金钱永不眠,黄蓝带三剑合一实战做多的方法 4、输入现货名字、股票代码,或股票首字母,按Enter回车键,可以分析看股...
非常荣幸的受作者邀请来帮忙写这个序,诚惶诚恐,何德何能? 不记得何时开始认识的作者了。当初只是作为一个自学者混迹于各个技术群中,后来发现几乎每个群 里每天充斥着大量的垃圾信息,QQ 不停的闪动,看吧?!都...
9. 两位说话者讨论的主题,可能是要看哪部电影、如何去电影院或是周末计划。 10. 在胜利剧院正在放映的电影类型,可能是日本电影、法国电影或是科幻电影。 11. 两位说话者最终决定去哪个地方,可能是邻里剧院、电影...
可以尝试写作后自我检查,看看是否每个段落都围绕一个明确的主题,并且支持句是否有效地支持了这个主题。此外,他人的反馈也很重要,可以找朋友或导师帮忙审阅,以便找出可能的改进之处。 8. **阅读优秀作品**:...
从标题和描述来看,这似乎是一个遇到了问题的小游戏项目。让我们来探讨一下可能出错的地方,并提供一些排查错误的策略。 首先,让我们分析`main.c`这个文件。它是C程序的主要入口点,包含了程序的主函数`main()`。...
接到打错的电话时,秘书人员应该仔细问他找的人是谁,看能否帮忙,以避免误解和不必要的麻烦。 选择题5:秘书的()是促使秘书行动的原因,是产生和维持行动的个性心理倾向,是秘书心理活动中的重要机能。选择一项...
要是打印头下的传感器没问题,你可以看一下连那个传感器的头缆! 回复: 经过再次检查发现主板上BD3980F芯片有点烫手,不知是否跟这有关 回复 不知道了,我的情况和你所说的一样,以前修过好多,但是从来还没有见到如这...
3. 错 - 应主动帮忙,关心他人。 4. 对 - “快乐鸟”教会我们乐观面对生活。 5. 错 - 不诚实的行为不利于个人成长。 6. 对 - 换个角度看问题,转变心态。 7. 错 - 土豆适合生长在土壤里,不是水中。 8. 错 - 过度...
您说的没错,我们公司产品的款式确实不多,因为我们公司一直坚持贵精而不贵多的生产理念,每款设计都有它的特别之处。请问您是想要滑盖的还是翻盖的,我帮您介绍两款吧?” 化解顾客提出“款式少、不好看”异议的...
懂事的孩子能理解父母的辛劳并尽力帮忙。 判断题: 1. 对。父母有权拒绝不合理的要求。 2. 对。尊重所有工作者是良好素养的体现。 3. 错。帮朋友作弊是不诚实的行为。 4. 对。信用是人格的重要组成部分。 5. 错。...
然后,提到一个叫杨洋的同学,由于粗心将兔子的耳朵画错了,引得同学们大笑。 2. 讲述的是一个孩子在广场放风筝的经历。起初,他放不起来风筝,感到困扰;然后,父亲告诉他如何正确放风筝,如迎风放、小跑、提线等...
4. **寻求帮助**:第15题中,孩子请求父亲帮忙解数学题,B选项"I'm stuck"意为“我被难住了”,适合表达遇到问题需要帮助的情况。 5. **情感支持**:在第11题中,面对他人的担忧,D选项“Everything will work out ...