在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例:

实现功能:

输入英文,给出对应的中文翻译,如果没有这个单词没有被收录会有相关提示

代码编写环境

JDK:1.8.0_191

Eclipse:2019-03 (4.11.0)

素材:

dict.txt

字典资源文本文件,保存一些下列格式的文件,英文和翻译之间用制表符隔开:

Africa  n. 非洲

Aids    n. 爱滋病

America      n. 美洲

April    n. 四月

案例实现用到的技术:

IO流

Map—HashMap

字符串分割

异常处理

代码思路

1、  根据字典文件路径,创建file对象

2、  判断file对象是否为空,不为空就继续,否则直接返回null

3、  File不为空,创建InputStreamReader和BufferedReader对象

4、  循环读取字典文本中的内容,切割得到数组,保存在map中

5、  提示输入单词,查询单词,输出查询结果

运行效果

开始运行的提示:

查询成功的反馈

单词不存在的反馈

案例代码:

编写方法读取文本中的内容

package com.feng.demo01;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

/**

*     英汉字典案例

* @author dushine

*/

public class GetDict {

public static void main(String[] args) {

String path = "E:\\dict.txt";

// 获取字典中的所有内容

Map<String, String> dict = getText(path);

// 判断字典是否为空,提示输入单词,获取查询结果

if (dict != null) {

@SuppressWarnings("resource")

// 获取输入内容

Scanner input = new Scanner(System.in);

System.out.println("请输入要查询的单词:");

String word = input.next();

// 查询字典获取中文,如果没有也给出反馈

String ret = dict.get(word);

if (ret != null) {

System.out.println("查询结果:\n"+word + ":" + ret);

} else {

System.out.println("您查询的单词尚未收录,敬请期待!");

}

}

}

/**

* 获取字典文件中内容

* @param path

* @return

*/

private static Map<String, String> getText(String path) {

// 可能会出现异常

try {

// 根据路径创建文件对象

File file = new File(path);

// 判断路径指向的文件是否存在

if (file.exists() && file.isFile()) {

// 创建map,存储读取得到的内容

Map<String, String> dict = new HashMap<String, String>();

System.out.println("文件路径正确,正在解析。。。");

// 创建输入流对象

InputStreamReader reader =

new InputStreamReader(new FileInputStream(file), "gbk");

BufferedReader bufferedReader = new BufferedReader(reader);

String text = null;

// 循环读取文件内容

while ((text = bufferedReader.readLine()) != null) {

// 切割每一行内容,得到数组

String[] arr = text.split("\t");

// 把切割得到的内容放入map

dict.put(arr[0], arr[1]);

}

// 读取结束,关闭流对象并返回结果

reader.close();

return dict;

} else {

System.out.println("字典崩溃啦,下次再来使用吧。。。");

}

} catch (Exception e) {

System.out.println("字典好像出了点问题、文件内容出错啦。。。");

e.printStackTrace();

}

// 路径指向的不是文件或者文件不存在返回null

return null;

}

}

转载于:https://www.cnblogs.com/CQqf2019/p/10910456.html

java 学习案例之英汉字典相关推荐

  1. 英汉小字典java_java 学习案例之英汉字典

    在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例: 实现功能: 输入英文 ...

  2. 好程序员Java分享Java案例_英汉字典

    在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例:      实现功能: ...

  3. 英汉词典 JaVa_Java案例_英汉字典_技术文章

    在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用Java基础语言编写的英汉字典案例: 实现功能: 输入英文 ...

  4. python制作英汉词典_Python基于有道实现英汉字典功能

    本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...

  5. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  6. python有道字典_Python基于有道实现英汉字典功能

    本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/searc ...

  7. 英汉字典程序C语言,分享纯C语言英汉字典源码

    近期深受开源的精神影响,并为之深深感动,想了很久,今天把我代码积累多年的一个"英汉字典"公布. 研一的时候因为无聊或者因为兴趣,做了一个纯C语言的英汉字典.核心算法是KMP快速查找 ...

  8. python英汉字典_Python基于有道实现英汉字典功能

    Python基于有道实现英汉字典功能 本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://di ...

  9. txt文件-英汉字典

    txt文件-英汉字典 内容要求 要求从一个txt文件读取,使用map制作英汉字典 #include <string> #include <iostream> #include ...

最新文章

  1. 影像组学视频学习笔记(6)-特征筛选之LASSO回归(理论)、Li‘s have a solution and plan.
  2. springboot2自定义HttpTraceRepository
  3. Android开发之android与JS互调 | Android与H5互调(附源码)
  4. php考勤分析,php考勤系统
  5. ROS技术点滴 —— MoveIt!中的运动学插件
  6. oracle sql 分区查询语句_Oracle 分区概述
  7. 计算机专业简历中技能特长怎么写,简历上特长技能应该怎么填写
  8. CygWin遇到WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
  9. 贾跃亭造车实验室首曝光:正积极推进FF91量产工作
  10. 安装更新Lenovo Solution Center更新失败!具体问题看内容!要是等官方技术人员解决,估计要等上好一段时间!...
  11. flash xml+textArea组件+CSS
  12. Quartz配置文件详解生产配置
  13. Android群英传知识点回顾——第七章:Android动画机制与使用技巧
  14. linux下搭建redis内网端口映射工具-rinetd
  15. redis获取哈希类型的值,hget、hmget、hgetall
  16. c 语言打印26个大写字母怎么读,26个大写字母读法
  17. K66芯片解锁/J-link报错的解决思路
  18. python实现自动拨打电话_python 实现手机自动拨打电话的方法(通话压力测试)
  19. Redhat7.5升级openssh到8.2p1
  20. 32款实用网页开发人员必备的谷歌浏览器扩展

热门文章

  1. 阿里云OSS对象存储STS鉴权配置
  2. [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
  3. Fragment容器Activity
  4. Oracle的tnsnames.ora配置(PLSQL Developer)
  5. 对tmemorystream的一些改进_delphi教程 [转]
  6. can总线报文是固定的吗_CAN总线传输协议
  7. mysql trim 索引_mysql 强大的trim() 函数
  8. linux7.1怎么安装vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  9. mobilenet V1
  10. c语言实验一的错误,C语言实验(三)