Java实现中英文词典功能
功能如下:
- 可以向词典中增加中英文单词,并提供修改和删除功能
- 完成输入中文查询英文的功能,如果没有提示没有查到
- 完成输入英文查询中文的功能,如果没有提示没有查到
- 功能的选择使用文字菜单完成,每个操作要求有明确的操作提示和结果演示,以及结果演示的暂停。
代码实现:
import java.util.Objects;
import java.util.HashMap;
import java.util.Scanner;//单词模型类
class Word {private String name;private String meaning;public Word() {}public Word(String name, String meaning) {this.name = name;this.meaning = meaning;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMeaning() {return meaning;}public void setMeaning(String meaning) {this.meaning = meaning;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Word word = (Word) o;return Objects.equals(name, word.name) && Objects.equals(meaning, word.meaning);}@Overridepublic int hashCode() {return Objects.hash(name, meaning);}
}//CURD
class Dictionary {private HashMap<String, Word> ch = null;private HashMap<String, Word> en = null;//初始化public Dictionary() {this.ch = new HashMap<String, Word>();this.en = new HashMap<String, Word>();}//添加中文单词public void addChWord() {System.out.println("请输入单词名称");Scanner sc = new Scanner(System.in);String name = sc.next();if (ch.containsKey(name)) {System.out.println("这个单词已存在,请重试");} else {System.out.println("请输入这个单词的英文翻译");String meaning = sc.next();ch.put(name, new Word(name, meaning));System.out.println("添加成功");}backMenu();}//添加英文单词public void addEnWord() {System.out.println("请输入单词名称");Scanner sc = new Scanner(System.in);String name = sc.next();if (en.containsKey(name)) {System.out.println("这个单词已存在,请重试");} else {System.out.println("请输入这个单词的中文翻译");String meaning = sc.next();en.put(name, new Word(name, meaning));System.out.println("添加成功");}backMenu();}//改变中文单词public void changeCh() {System.out.println("请输入您要修改的中文单词");Scanner sc = new Scanner(System.in);String name = sc.next();boolean flag = ch.containsKey(name);if (!flag) {System.out.println("您要修改的中文单词不存在,请重试");} else {System.out.println("请输入修改后的内容");String meaning = sc.next();ch.put(name, new Word(name, meaning));System.out.println("修改成功");}backMenu();}//改变英文单词public void changeEn() {System.out.println("请输入您要修改的英文单词");Scanner sc = new Scanner(System.in);String name = sc.next();boolean flag = en.containsKey(name);if (!flag) {System.out.println("您要修改的英文单词不存在,请重试");} else {System.out.println("请输入修改后的内容");String meaning = sc.next();en.put(name, new Word(name, meaning));System.out.println("修改成功");}backMenu();}//删除中文单词public void deleteCh() {System.out.println("请输入您要删除的中文单词");Scanner sc = new Scanner(System.in);String name = sc.next();if (ch.remove(name) != null)System.out.println("删除成功");elseSystem.out.println("您要删除的单词不存在,请重试");backMenu();}//删除英文单词public void deleteEn() {System.out.println("请输入您要删除的英文单词");Scanner sc = new Scanner(System.in);String name = sc.next();if (en.remove(name) != null)System.out.println("删除成功");elseSystem.out.println("您要删除的单词不存在,请重试");backMenu();}//查询中文单词的翻译public void seachEn() {System.out.println("请输入您要查询的中文单词");Scanner sc = new Scanner(System.in);String name = sc.next();boolean flag = ch.containsKey(name);if (!flag) {System.out.println("您要查询的中文单词不存在,请重试");} else {Word word = ch.get(name);System.out.println(name + "的英文翻译是" + word.getMeaning());}backMenu();}//查询英文单词的中文翻译public void seachCh() {System.out.println("请输入您要查询的英文单词");Scanner sc = new Scanner(System.in);String name = sc.next();boolean flag = en.containsKey(name);if (!flag) {System.out.println("您要查询的英文单词不存在,请重试");} else {Word word = en.get(name);System.out.println(name + "的中文翻译是" + word.getMeaning());}backMenu();}public void backMenu() {System.out.println("请输入9返回菜单");Scanner sc = new Scanner(System.in);sc.next();System.out.println();}
}//测试类
public class MainClass {public static void main(String[] args) {Dictionary myDictionary = new Dictionary();while (true) {System.out.println("————————欢迎使用中英文词典系统————————");System.out.println("1.添加中文单词");System.out.println("2.添加英文单词");System.out.println("3.修改中文单词");System.out.println("4.修改英文单词");System.out.println("5.删除中文单词");System.out.println("6.删除英文单词");System.out.println("7.查询中文单词翻译");System.out.println("8.查询英文单词翻译");System.out.println("9.退出系统");System.out.println("请输入你的选择:");Scanner sc = new Scanner(System.in);int i = sc.nextInt();switch (i) {case 1:myDictionary.addChWord();break;case 2:myDictionary.addEnWord();break;case 3:myDictionary.changeCh();break;case 4:myDictionary.changeEn();break;case 5:myDictionary.deleteCh();break;case 6:myDictionary.deleteEn();break;case 7:myDictionary.seachEn();break;case 8:myDictionary.seachCh();break;case 9:System.out.println("谢谢使用");System.exit(0);}}}
}
Java实现中英文词典功能相关推荐
- java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!
简单的需求 临近下班,小明忙完了今天的任务,正准备下班回家. 一条消息闪烁了起来. "最近发现公众号的拼写检查功能不错,帮助用户发现错别字,体验不错.给我们系统也做一个." 看着这 ...
- java发布后功能不能用,急项目发布后java写的打印功能失效了-求解解决方法
当前位置:我的异常网» J2EE » 急项目发布后java写的打印功能失效了-求解解决方法 急项目发布后java写的打印功能失效了-求解解决方法 www.myexceptions.net 网友分享于 ...
- [转载]JAVA实现鼠标右键功能
原文地址:JAVA实现鼠标右键功能作者:beexk 如何实现右键功能呢?(PopupMenu) 有两个步骤: 1.谁来实现,也就是该右键的source是什么. (直接把PopupMenu加到对象sou ...
- java 实现网络通信_利用Java怎么样实现网络通信功能
利用Java怎么样实现网络通信功能 发布时间:2020-11-20 15:19:04 来源:亿速云 阅读:72 作者:Leah 利用Java怎么样实现网络通信功能?相信很多没有经验的人对此束手无策,为 ...
- java 1.8新增功能_睡觉时:新增的Java 8新增功能
java 1.8新增功能 自Java 8推出以来,最有趣的功能是什么? Java 8最近庆祝了它的第一个生日,其主要版本已经在一年多以前了. 这当然值得庆祝. 自从最初的Java 8版本问世以来,已经 ...
- Java 14的新功能
2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧版本,因为它具有向 ...
- java 基础包的功能_Java 8的功能基础
java 基础包的功能 Java 8彻底改变了Java. 它很可能是过去10年中最重要的Java版本. 有很多新功能,包括默认方法,方法和构造函数引用以及lambda, 仅举几例 . 更有趣的功能之一 ...
- java 1.8新增功能_Java 8的新增功能(第二部分-可能会出现什么)
java 1.8新增功能 免责声明:我不为Oracle工作,也不以任何方式代表Oracle. 此功能列表不是官方的. 作为"局外人",这只是我研究的一部分. 这是由三部分组成的系列 ...
- Java 8中的功能接口是什么? @功能注释和示例
函数接口是Java 8最重要的概念之一,实际上为lambda表达式提供了动力,但是许多开发人员没有首先了解函数接口在Java 8中的作用就花了很多精力来理解它,并花时间学习lambda表达式和Stre ...
- java上传文件功能_Java MemoryMapped文件的功能
java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...
最新文章
- [Git/Github] ubuntu 14.0 下github 配置
- 论海明威的存在主义宗教意识——存在主义虚无主义。注:部分观点个人不赞同...
- Java 强引用与软引用以及弱引用,虚引用
- ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序
- VR 技术加上 8K 画质! 2016 年里约奥运会亮点十足
- vue 循环tabs 标签页 组件_Vue render函数实战--实现tabs选项卡组件
- 大一新生如何h看待大学生活?
- Zynq7000硬件开发之总体硬件架构设计
- 关于伺服驱动控制的课本_三菱伺服驱动器-说明书.pdf
- 固态硬盘SSD闪存芯片的颗粒类型 和 颗粒等级
- 支付宝支付原理以及测试接口获取支付url
- mac下hadoop环境的搭建
- android 位置共享_如何与Android的受信任联系人共享您的位置
- Android 获取设备唯一标识
- SAP快速学习小结1
- 28 网络文件共享服务
- scratch五彩糖葫芦 电子学会图形化编程scratch等级考试三级真题和答案解析2022年6月
- 成长-技术人员的成长
- 实用技巧| 电脑系统提升20%上网速度,记得学会拿去装X哈
- 测试集群,任务运行失败
热门文章
- java实现modbus rtu协议与 modscan等工具
- 网络协议抓包分析实例
- 利用 LSTM 神经网络预测股价走势
- 微软MDT 安装与配置(一)
- python程序设计与算法基础教程微课版课后答案_Python程序设计与算法基础教程
- 常见排序算法的时间复杂度汇总
- 打算开源一个低代码平台,第四天,包含【工作流,业务流,财务,APQC】。技术栈 React,typescript,java,mysql
- iptv原版固件_永久免费看IPTV,有了这固件可看高清流畅稳定直播
- excel模板 基金账本_有哪些好用的Excel个人账单模板?
- Stata15重编码