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

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

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

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

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

使用单词库: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 stub
		Scanner 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");
		}
		else
		System.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英语字典查询小程序 刚学习Java,用Java写了一个小的单词查询程序来练手的。仅供参考。 立即下载

相关推荐

Java实现单词查询程序

程序用Java语言编写,实现英汉互译功能,界面友好,应用access简单方便

java一个英语词典程序

以上代码只是简单示例,可根据您的实际需求进行修改,并非完整代码。我提供简单的代码示例供您参考。

m0_58464499的博客 1068

java实现英文翻译程序

主要为大家详细介绍了java实现英文翻译程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

JAVA 实战 字典自动翻译

java 字典自动翻译

qq_41867674的博客 1195

java 学习案例之英汉字典

在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例: 实现功能: 输入英文,给出对应中文翻译,如果没有这个单词没有被收录会有相关提示 代码编写环境 ...

weixin_30662011的博客 2020

Java学习——String方法之按字典的比较功能

Java学习——String方法之按字典的比较功能 字符串的比较 /* * 字符串的比较 * compareTo() * 按照abcdef...z的顺序, * 比较第一个不同的字符,若调用的在前,则返回-1,相等0,在后1 */ System.out.println("a".compareTo("b"));//-1 ...

qq_39098031的博客 1238

Java实现中英文词典功能

功能如下: 可以向词典中增加中英文单词,并提供修改和删除功能 完成输入中文查询英文的功能,如果没有提示没有查到 完成输入英文查询中文的功能,如果没有提示没有查到 功能的选择使用文字菜单完成,每个操作要求有明确的操作提示和结果演示,以及结果演示的暂停。 代码实现: ...

阿炳的旅程的博客 7110

编程之美之电话号码对应英语单词

题目一:根据电话上字母和数字的对应关系,用一个有意义的单词来表述一个电话号码,如用computer表示26678837 题目二:反过来,给定一个电话号码,是否可以用一个单词来表示呢?怎样表示最快呢?显然不是所有的电话号码都可以对应单词上去 首先来看看leetcode上一个类似的题目: Letter Combinations of a Phone Number   G

fangjian1204的专栏 1774

盘点编程那些英语单词中文意思

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。哈希码(HashCode),并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。

huilu005的博客 5375

(java毕业设计源码)基于java(springboot)英语单词学习系统

项目获取请查看文末官网[java毕业设计项目源码,java毕设下载]基于java(springboot)英语单词学习系统是基于java编程语言,mysql数据库,springboot框架和idea开发工具,本系统分为管理员、用户两个角色,适合作为java毕业设计和java课程设计源码下载进行参考学习。

qq_28059693的博客 828

HashMap应用 Java

题目详情: 7-3 HashMap应用 (10 分) Map接口提供了将key映射到值得对象,用于存储键-值对,key不重复。主要解决通过key查找 value的应用,比如 通过学号查找学生信息。可以将学号key与 学生信息Student进行存储。 ######Map接口常用的实现类HashMap和TreeMap,HashMap对象 中key的存储一般是无序的,通过哈希函数进行查找对应value值。对于经常需要进行查找的数据可以采用散列映射来存储这样的数据,即为数据指定一个查找它的关键字,然后按着“健-

qq_hua_xia的博客 1003

java窗口化背英语单词练习(连接了数据库)

1、连接了SQL 2016数据库(jdbc) 2、采用窗口化方式 3、随机出现存储的单词 /* 数据库连接 */ package Simple_words; import java.sql.*; public class conSQL { public final static String url=“jdbc:sqlserver://localhost:1433;databaseName=Studying”; //databaseName=你的数据库名称 public final static

qq_44922497的博客 595

Java学习打卡」28、3.23面向对象程序练习

题目:设计一个词典类Dic,每个单词包括英文单词对应中文含义,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译对应的汉语。 思路:字典项类DicItem包括EngLish(英语单词)、Chinese(对应中文含义)数据成员,字典类包括一个字典项类的列表,包含Add()(添加单词)和trans(英汉翻译)成员函数。 import java.util.Scanner; class Di...

一米思的博客 1217

java设计单词英译汉小助手_单词小助手C语言版

单词小助手,要求完成以下任务:1.改写程序为良好程序风格(文档注释,函数注释,语句注释)。2.将单词测试中的功能完善,可针对做错的单词重复记忆。3.查询单词的功能添加英文词查询中文查询的功能完善(考虑如何显示同样中文意义,不同的英文单词)提高要求:可将程序中的不足(如数据验证,排名功能)等根据自己的能力与理解完成。一、题目分析单词小助手是帮助学生背诵单词的软件,用户可以选择单词送到词库,并编辑词...

weixin_30954879的博客 561

好程序员Java分享Java案例_英汉字典

在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例:   实现功能: 输入英文,给出对应中文翻译,如果没有这个单词没有被收录会有相关提示   代码编写环境 JDK:1.8.0_191 Eclipse:2019-...

weixin_30408309的博客 172

javaGUI做一个简单的英语翻译

javaSwing做的一个简单的单词查询小程序

weixin_70079744的博客 468

单词统计

一、题目要求   《哈利波特》 中最常用的短语是什么,等等。我们就写一些程序来解决这个问题,满足一下我们的好奇心。第0步:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母出现的总数)。如果两个字母出现的频率一样,那么就按照字典序排列。 如果 S 和 T 出现频率都是 10.2...

weixin_45040144的博客 96

java web常用英语单词,javaweb英语单词.doc

javaweb英语单词.doc Java基础常见英语词汇(共70个)OO:object-oriented,面向对象OOP:object-orientedprogramming,面向对象编程JDK:Javadevelopmentkit,java开发工具包JVM:javavirtualmachine,java虚拟机Compile:编绎Run:运行Class:类Object:对象System:系统out...

weixin_32233571的博客 473

java课程课后作业190502之单词统计续集

  第1步:输出单个文件中的前 N 个最常出现的英语单词。 功能1:输出文件中所有不重复的单词,按照出现次数由多到少排列,出现次数同样多的,以字典序排列。 功能2:指定文件目录,对目录下每一个文件执行统计的操作。 功能3:指定文件目录,是会递归遍历目录下的所有子目录的文件进行统计单词的功能。 功能4:输出出现次数最多的前 n 个单词,   前几个功能已经在之前的博客园中回答相应的解...

weixin_30408309的博客 130
上一篇: eclipse java jdbc连接SQL2008r2
下一篇: 字谜游戏,寻找字符矩阵中行、列、对角线方向的包含的所有单词
PancrasD
博客等级 码龄12年 14粉丝 15原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值