输入一个单词,可以查询单词意思,使用了字典

算法思想:字典文件读取后按单词长度进行了分组,单词查询时也是按照单词长度

选择对应的单词组进行查询,查询效率高

使用单词库:https://wenku.baidu.com/view/503b1318b14e852459fb57b0.html,转换成txt进行读取

读取文件输出遇到的错误总结:

1.读txt文件第一行会乱码;

方案:将txt转换成UTF-8无BOM编码格式,使用超级文本编辑器UltraEdit另存转换

2.eclipse读取中文输出乱码

方案:将eclipse文本格式设置为UTF-8格式,项目project-properties-resource

不足:单词库不足,单词语义解释不全

使用java编程:

package wordQuery;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;public class WordQuery {public static void main(String[] args) throws IOException {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);while(true) {System.out.println("Please enter Englishword,If want end please input ending!!!");String wordin=sc.nextLine();if(wordin.equals("ending!!!")){break;}else {Map<Integer,List<Word>> dic=readDictionary();Word word=findWord(wordin,dic);if(word==null) {System.out.println("no such word,please input again");}elseSystem.out.println(word);}}sc.close();}//从txt读入字典并按长度分组public static Map<Integer,List<Word>> readDictionary() throws IOException{File file=new File("dic\\EnglishUTF-8noBOM.txt");List<Word> list=new ArrayList<Word>();list=read(file);Map<Integer,List<Word>> wordmap=dividMap(list);return wordmap;}//从txt读入字典 public static List<Word> read(File file) throws IOException{List<Word> list=new ArrayList<Word>();BufferedReader in=new BufferedReader(new FileReader(file));String words;while((words=in.readLine())!=null) {//System.out.println(words);String[] str=words.trim().split(" ");Word wordObject=new Word(str[0],str[1],str[2]);list.add(wordObject);}in.close();return list;}//按单词长短进行分组,单词是一个对象包含单词、拼读、词属性、含义public static Map<Integer,List<Word>> dividMap(List<Word> possibleWord){Map<Integer,List<Word>> wordmap=new TreeMap<Integer,List<Word>>();for(int i=0;i<possibleWord.size();i++) {Word wordObject =possibleWord.get(i);int len=wordObject.getWord().length();if(wordmap.get(len)==null) {List<Word> lset=new ArrayList<Word>();lset.add(wordObject);wordmap.put(len, lset);}else{List<Word> set=wordmap.get(len);set.add(wordObject);}}Map<Integer,List<Word>> words=new TreeMap<Integer,List<Word>>();for(Map.Entry<Integer, List<Word>> entry:wordmap.entrySet()) {Integer length=entry.getKey();List<Word> set=entry.getValue();List<Word> list=new ArrayList<Word>(set);words.put(length, list);}return words;}//在单词库里寻找单词读音及含义public static Word findWord(String word,Map<Integer,List<Word>>dic) {Integer len=word.length();List<Word> list=dic.get(len);for(Word wordtemp:list) {if(word.equalsIgnoreCase(wordtemp.getWord())) {return wordtemp;}}return null;}}
单词定义
package wordQuery;public class Word {//单词 单词拼读 单词属性private String word;private String spell;private String properties;public Word(String wordin,String spellin,String propertiesin){word=wordin;spell=spellin;properties=propertiesin;}public String toString() {return (word+"  "+spell+"  "+properties);}public String getWord() {return word;}public String getWordSpell() {return spell;}public String getWordProperties() {return properties;}public String addProperties(String proper) {StringBuffer buffer=new StringBuffer(properties);buffer.append(proper);properties=new String(buffer);return properties;}}

java英语单词查询,输入一个单词根据字典查询单词意思相关推荐

  1. python输入一个英文句子、统计单词个数_C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。c++编程 从键盘输入一个英文...

    C语言编程求一个英文句子中的单词数和最长单词的位置.长度及输出这个单词. c++编程 从键盘输入一个英文 www.zhiqu.org     时间: 2020-11-23 我刚做了一关于英文句子里面每 ...

  2. Java练习案例之输入一个字符串统计每个字母出现次数

    Java小案例:输入一个字符串,要求统计字符串中每个字符串出现的次数 需求: 结果预览: 思路: 原码: 需求: 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数. 举例:键盘录入" ...

  3. Java输出书名_输入一个书名,如果与数组中的书名匹配就输出书名,这个代码怎么写啊 (﹏)...

    public class Tushu2 { private String name; public Tushu2(String name) { this.name = name; } public S ...

  4. java十进制输出_JAVA输入一个十进制数N,输出r进制的数

    \\引入包 import java.util.Scanner; import java.util.Stack; public class Change { public static void mai ...

  5. java输入一个年份,利用Java实现从键盘输入一个年份,程序输出改年出生的人的生肖...

    从键盘输入一个年份,程序输出改年出生的人的生肖. import java.util.Scanner; public class Sesx { public static void main(Strin ...

  6. 利用Java实现从键盘输入一个double型数,输出该数的整数部分和小数部分

    从键盘输入一个double型数,输出该数的整数部分和小数部分 import java.util.Scanner;public class FractionDemo {public static voi ...

  7. Java从键盘上输入一个正整数n,然后计算1+2+...+n的结果并输出

    输入:  -6 10 package com; import java.util.*; public class app4_8 {public static void main(String[] ar ...

  8. 用集合java字符串第一个单词_Java小程序 输入一个字符串,将每一个单词首字母大写...

    Java 小程序 01 输入一个字符串,将每一个单词首字母大写 1.首先写一个接收传入的单词,并将传入单词首字母大写.这一步比较简单,没什么好说的! private String titleCase ...

  9. java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321

    如题所示,在java中如何实现输入一个正整数,然后将这个正整数反着输出来,代码如下: public static void test7(){System.out.println("请输入一个 ...

  10. java数字计算结果_Java编写程序之输入一个数字实现该数字阶乘的计算

    需求说明: 编写Java程序,输入一个数字,实现该数字阶乘的计算.一个数字的阶乘是所有小于及等于该数的正整数的积,自然数n的阶乘写作n! .例如,5的阶乘等于1*2*3*4*5,表示为5! = 120 ...

最新文章

  1. Kube-Scheduler插件的自定义
  2. R语言回归模型协方差分析(Analysis of Covariance)
  3. 怎么体验华为鸿蒙系统,华为mate40升级鸿蒙系统体验_华为mate40升级鸿蒙系统使用感受...
  4. java 读取css文件_java文件读取的两种方式
  5. 2018年全国多校算法寒假训练营练习比赛(第三场)
  6. [SpringSecurity]HelloWorld入门案例
  7. 大数据之-Hadoop3.x_Yarn_工作机制---大数据之hadoop3.x工作笔记0142
  8. 精读《如何编译前端项目与组件》
  9. Windows下安装Nginx+php+mysql环境
  10. python用pip安装numpy清华_安装numpy和matplotlib
  11. windows下删除不掉文件夹:找不到该项目无法删除文件夹?
  12. 谈谈我对面向对象的理解
  13. 冰冻三尺,非一日之寒
  14. python算法之lowb排序三人组(冒泡排序,插入排序,选择排序)
  15. 国内投资者投资港股的四种方法和港股必知25件事
  16. 如何写出好文案,不妨看看这篇(上)
  17. 【Redis】Redis介绍
  18. mysql学习日常操作
  19. 项目分享|小师弟手把手教你用蓝牙模块
  20. python传智播客王铭东_传智播客Python学科的王铭东老师讲的怎么样 |

热门文章

  1. 微信小程序实现全局登陆状态
  2. c语言case后语句,switch语句中case后的标号是什么
  3. 本质与现象:本质与现象
  4. 虚拟机出现entering emergency mode,使用xfs_rapair出现Device or resource busy解决
  5. On the Efficacy of Knowledge Distillation
  6. 【对话系统】Knowledge-Grounded Dialogue Generation with a Unified Knowledge Representation
  7. C#更新word目录
  8. 商鞅的APP运营之道
  9. android 手机 瘦身,手机瘦身 Android系统程序精简教程(1)
  10. Hadoop2.7.1+Hbase1.2.1集群环境搭建(5)hbase安装