Java实现中英文词典功能
作者:阿炳的旅程 发布时间:2021-06-20 18:25:56
标签:java,词典
本文实例为大家分享了Java实现中英文词典功能的具体代码,供大家参考,具体内容如下
功能如下:
1、可以向词典中增加中英文单词,并提供修改和删除功能
2、完成输入中文查询英文的功能,如果没有提示没有查到
3、完成输入英文查询中文的功能,如果没有提示没有查到
4、功能的选择使用文字菜单完成,每个操作要求有明确的操作提示和结果演示,以及结果演示的暂停。
代码实现:
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;
}
@Override
public 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);
}
@Override
public 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("您要修改的中文单词不存在,请输入任意字母返回");
sc.next();
} 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("您要修改的英文单词不存在,请输入任意字母返回");
sc.next();
} 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("删除成功");
else
System.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("删除成功");
else
System.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);
}
}
}
}
来源:https://blog.csdn.net/weixin_51119270/article/details/120317366


猜你喜欢
- Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。
- 创建类第一步新建一个java类QSV,构造函数传入需要解析的文件名称。public class QSV {private RandomAcc
- 😜shape属性详解<?xml version="1.0" encoding="utf-8"?
- springboot aop里的@Pointcut()的配置@Pointcut("execution(public * com.w
- 队列简介队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即先存入队列的数据,先取出,后存入的后取出。示意图:(使用数组模拟
- 三个例子 —JAVA发送http get/post请求,调用http接口、方法例1:使用 HttpClient (commons-httpc
- 在过去十年中最流行的移动应用开发开发平台中,我们认为,Android平台是一个新开发的最方便的平台。一个廉价的工具,友好的开发者社区,众所周
- 为什么要学习Android与H5互调?微信,QQ空间等大量软件都内嵌了H5,不得不说是一种趋势。Android与H5互调可以让我们的实现混合
- 多线程的创建,方式一:继承于Thread类1.创建一个继承于Thread类的子类2.重写Thread类的run()--->将此线程执行
- 本文实例讲述了java使用Jdom实现xml文件写入操作的方法。分享给大家供大家参考,具体如下:package com.yanek.demo
- 本文主要介绍了关于单例模式的一些问题,想学习C#单例模式的同学们可以看一看,还是有些帮助c#中的单例模式单例模式是指在设计一个类时,保证在运
- 多段颜色的进度条实现思路,供大家参考,具体内容如下这个进度条其实相对简单. 这里可以把需要绘制的简单分为两个部分1.灰色背景部分 2.多段颜
- 目录批量更新同一张表的数据更新多条数据,每条数据都不一样java中for循环实现方式一条SQL,服务端逐条更新mybatis实现方式使用Fl
- 简介:本文已一个简要的代码示例介绍ThreadLocal类的基本使用方式,在此基础上结合图片阐述它的内部工作原理。早在JDK1.2的版本中就
- 本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下题目:1、完成一个通讯录,需求:(1)添加联系人(联系人:
- 概念final 具有“不可改变的”的含义,可以修饰 非抽象类、非抽象成员方法和变量。用 final 修饰的类不能被继承,没有子类。用 fin
- 目录1、什么是Java的内存模型2、为什么需要Java内存模型3、Java内存模型及操作规范4、Java内存模型规定的原子操作5、Java内
- 本文实例讲述了C#实现基于加减按钮形式控制系统音量及静音的方法。分享给大家供大家参考。具体如下:using System; using Sy
- 1 什么是WMI?Windows Management Instrumentation (WMI)是可伸缩的系统管理结构,该规范采用一个统一
- 1、首先创建一个按钮<Buttonandroid:id="@+id/click"android:layout_wi