[案例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("录入成功!");
}
}
上一篇:
通过多线程提高代码的执行效率例子
