中英文词典功能(Java)

267 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

要求如下:

  1. 可以向词典中增加中英文单词,并提供修改和删除功能
  2. 完成输入中文查询英文的功能,如果没有提示没有查到
  3. 完成输入英文查询中文的功能,如果没有提示没有查到
  4. 功能的选择使用文字菜单完成,每个操作要求有明确的操作提示和结果演示,以及结果演示的暂停。
 package com.zhangyufan.test;
 ​
 import java.util.HashMap;
 import java.util.Objects;
 import java.util.Scanner;
 ​
 public class TestDictionary {
 ​
     public static void main(String[] args) {
         Dictionary dictionary = 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:
                 dictionary.addChWord();
                 break;
             case 2:
                 dictionary.addEnWord();
                 break;
             case 3:
                 dictionary.modifyCh();
                 break;
             case 4:
                 dictionary.modifyEn();
                 break;
             case 5:
                 dictionary.deleteCh();
                 break;
             case 6:
                 dictionary.deleteEn();
                 break;
             case 7:
                 dictionary.ceTranslation();
                 break;
             case 8:
                 dictionary.ecTranslation();
                 break;
             case 9:
                 System.out.println("谢谢使用本系统,欢迎下次使用!");
                 System.exit(0);
             default:
                 break;
             }
         }
 ​
     }
 ​
 }
 ​
 class Word {
     private String name1;
     private String name2;
 ​
     public String getName1() {
         return name1;
     }
 ​
     public void setName1(String name1) {
         this.name1 = name1;
     }
 ​
     public String getName2() {
         return name2;
     }
 ​
     public void setName2(String name2) {
         this.name2 = name2;
     }
 ​
     public Word(String name1, String name2) {
         super();
         this.name1 = name1;
         this.name2 = name2;
     }
 ​
     public Word() {
         super();
     }
 ​
     @Override
     public boolean equals(Object o) {
         if (this == o)
             return true;
         if (o == null || this.getClass() != o.getClass())
             return false;
         Word word = (Word) o;
         return Objects.equals(this.name1, word.name1) && Objects.equals(this.name2, word.name2);
     }
 ​
     @Override
     public int hashCode() {
         return Objects.hash(name1, name2);
     }
 }
 ​
 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 static void clear() {
         for (int i = 0; i < 30; i++) {
             System.out.println();
         }
     }
 ​
     public void addChWord() {
         System.out.println("请输入您想要添加的中文单词:");
         Scanner sc = new Scanner(System.in);
         String name1 = sc.next();
         if (ch.containsKey(name1)) {
             System.out.println("该中文单词已存在,添加失败!");
         } else {
             System.out.println("请输入该中文单词的英文翻译:");
             String name2 = sc.next();
             ch.put(name1, new Word(name1, name2));
             System.out.println("中文单词“" + name1 + "”添加成功!");
         }
         backMenu();
     }
 ​
     public void addEnWord() {
         System.out.println("请输入您想要添加的英文单词:");
         Scanner sc = new Scanner(System.in);
         String name1 = sc.next();
         if (en.containsKey(name1)) {
             System.out.println("该英文单词已存在,添加失败!");
         } else {
             System.out.println("请输入该英文单词的中文翻译:");
             String name2 = sc.next();
             en.put(name1, new Word(name1, name2));
             System.out.println("英文单词“" + name1 + "”添加成功!");
         }
         backMenu();
     }
 ​
     public void modifyCh() {
         System.out.println("请输入您想要修改的中文单词");
         Scanner sc = new Scanner(System.in);
         String name1 = sc.next();
         boolean flag = ch.containsKey(name1);
         if (!flag) {
             System.out.println("您想要修改的中文单词不存在!");
         } else {
             System.out.println("确认修改? 请输入y(代表Yes)或n(代表No)");
             String yesNo = sc.next().toLowerCase();
             if ("y".equals(yesNo)) {
                 System.out.println("请输入该中文单词修改后的英文翻译");
                 String name2 = sc.next();
                 ch.put(name1, new Word(name1, name2));
                 System.out.println("中文单词“" + name1 + "”修改成功!");
             } else {
                 System.out.println("取消修改!");
             }
 ​
         }
         backMenu();
     }
 ​
     public void modifyEn() {
         System.out.println("请输入您想要修改的英文单词");
         Scanner sc = new Scanner(System.in);
         String name1 = sc.next();
         boolean flag = en.containsKey(name1);
         if (!flag) {
             System.out.println("您想要修改的英文单词不存在!");
         } else {
             System.out.println("确认修改? 请输入y(代表Yes)或n(代表No)");
             String yesNo = sc.next().toLowerCase();
             if ("y".equals(yesNo)) {
                 System.out.println("请输入该英文单词修改后的中文翻译");
                 String name2 = sc.next();
                 en.put(name1, new Word(name1, name2));
                 System.out.println("英文单词“" + name1 + "”修改成功!");
             } else {
                 System.out.println("取消修改!");
             }
 ​
         }
         backMenu();
     }
 ​
     public void deleteCh() {
         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("确认删除? 请输入y(代表Yes)或n(代表No)");
             String yesNo = sc.next().toLowerCase();
             if ("y".equals(yesNo)) {
                 ch.remove(name);
                 System.out.println("中文单词“" + name + "”删除成功!");
             } else {
                 System.out.println("取消删除!");
             }
         }
         backMenu();
     }
 ​
     public void deleteEn() {
         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("确认删除? 请输入y(代表Yes)或n(代表No)");
             String yesNo = sc.next().toLowerCase();
             if ("y".equals(yesNo)) {
                 en.remove(name);
                 System.out.println("英文单词“" + name + "”删除成功!");
             } else {
                 System.out.println("取消删除!");
             }
         }
         backMenu();
     }
 ​
     public void ceTranslation() {
         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.getName2());
         }
         backMenu();
     }
 ​
     public void ecTranslation() {
         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.getName2());
         }
         backMenu();
     }
 ​
     public void backMenu() {
         System.out.println("请输入任意字符返回主菜单!");
         Scanner sc = new Scanner(System.in);
         sc.next();
         clear();
     }
 }
 ​

\