[案例6-5]模拟百度翻译

任务描述:

相信百度翻译对于大家来说并不陌生,本案例要求编写一个程序模拟百度翻译。用户输入英文之后搜索程序中对应的中文,如果搜索到对应的中文就输出搜索结果,反之给出提示。本案例要求使用Map集合实现英文与中文的存储。

运行结果:

代码如下:

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/**
 * 2022/4/3
 */
public class BD {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        HashMap<String,String> hm = new HashMap<>();   // 创建Map集合
        // 存放元素
        hm.put("apple","苹果");
        hm.put("banana","香蕉");
        hm.put("yellow","黄色");
        hm.put("red","红色");
        hm.put("green","绿色");

        // 循环,使用户可以多次输入
        while (true) {
            System.out.println("请输入要翻译的单词:");
            String fy = in.next();  // 用户输入
            fyDc(hm, fy);   // 调用翻译方法
            System.out.println("是否录入更多单词(输入:是.否):");
            String sf = in.next();
            if (sf.equals("否")){  // 输入否退出
                break;
            }else if (sf.equals("是")){  // 输入是,调用录入方法
                sdLr(in,hm);
            }else{
                System.out.println("输入错误,自动退出!");
                break;
            }
        }
    }
    // 翻译方法
    public static void fyDc(HashMap<String,String> hm,String fy){
        Set<String> str = hm.keySet();   // 获取键值
        for (String key : str) {   // 遍历集合
            if (fy.equals(key)) {   // 判断输入的元素是否和集合中的元素一样
                String s = hm.get(key);   // 通过键获取值
                System.out.println(fy + " 翻译成汉语为:" + s);  // 输出值
                break;
            } else if (!hm.containsKey(fy)) {   // 判断该Map集合中是否拥有该元素
                System.out.println("抱歉,暂无该单词!");
                break;
            }
        }
    }
    // 手动录入单词
    public static void sdLr(Scanner in,HashMap<String,String> hm){
        System.out.println("请输入要录入的单词:");
        String lrD = in.next();
        System.out.println("请输入汉语意思:");
        String lrH = in.next();
        hm.put(lrD,lrH);   // 将录入的单词和汉语意思存入集合中
        System.out.println("录入成功!");
    }
}
经验分享 程序员 微信小程序 职场和发展