在写代码的时候,当鼠标悬浮在某一个单词上面的时候,有道词典点有时会弹出一个消息气泡,在里面中给出关于这个单词相关的解释,下面给大家展示一个使用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/gcghcxy/p/10938946.html

好程序员Java分享Java案例_英汉字典相关推荐

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

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

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

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

  3. java 学习案例之英汉字典

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

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

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

  5. java女程序员工作_女生适合做java程序员吗 女java程序员好找工作

    女生适合做java程序员吗 女java程序员好找工作?随着IT行业的飞速发展,程序员越来越受到重视,一些性格比较强势的女生,就也想加入到Java程序员的行列,因为他们感觉女生做这样的事情不会比男生差, ...

  6. java实现心形图案|桃心_程序员的浪漫--java打印心形图案

    原标题:程序员的浪漫--java打印心形图案 谁说程序员不能浪漫 单纯的心 双心 加些点缀 代码所用方程: 心:((0.05*x)^2 + (0.1*y)^2-1)^3-(0.05*x)^2 * (0 ...

  7. java程序员的浪漫代码_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考价值的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程序动态闪 ...

  8. i love java怎么写编程_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用使用的,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考网上卖的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程 ...

  9. java面向对象程序练习_5本面向经验丰富的程序员的高级Java书籍

    java面向对象程序练习 Sometimes back I wrote an article for Best Core Java Books for beginners, today I am sh ...

最新文章

  1. java记事本环境变量_java环境变量配置以及用记事本写程序
  2. activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用
  3. 解压zip_go|用Go写一个zip解压脚本
  4. 【CTF】实验吧 传统知识+古典密码
  5. LoadRunner解决超时错误
  6. c语言排序算法实际案例,[C语言] 部分经典排序算法详解(有图解)
  7. 【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
  8. 诗与远方:无题(二十一)
  9. 2018年手机摄像头模组市场调研报告
  10. tde数据库加密_如何在TDE加密的数据库上配置SQL Server镜像
  11. mysql可视化创建外键说明_关于使用可视化图形工具navicat for mysql来创建外键的步骤...
  12. for each,for in,for of三者区别
  13. 一份JAVA工程师的求职简历来告诉你求职简历怎么写(上)
  14. python代码实现自动登录
  15. 关于VGA接口连接1080p显示器模糊多半是线的问题
  16. 微信公众号问题:{errcode:40125,errmsg:invalid appsecret, view more at http:\/\/t.cn\/LOEdzVq, hints: [ ...
  17. 读博太孤独?一个人的苦行!
  18. USACO-Controlling Companies
  19. 梅姨一定想不到 中国人最爱的英国货竟然是一本童书
  20. 我们有n根的木棍。现在从这些木棍中切割出来m条长度相同的木棍,问这m根木棍最长有多长?

热门文章

  1. MSP432 库函数实现 PID 电机调角度、调速
  2. win7 删除Windows服务的方法
  3. 交叉编译和交叉调试环境搭建及使用
  4. Dynamic Performance Tables not accessible,Automatic Statistics...
  5. [react] 请描述下你对react的新特性Hooks的理解?它有哪些应用场景?
  6. 前端学习(3332):ant design介绍button
  7. [vue] ajax、fetch、axios这三都有什么区别?
  8. [js] 举例说明Object.defineProperty会在什么情况下造成循环引用导致栈溢出?
  9. 前端学习(2189):Promise的介绍和基本使用二
  10. 前端学习(2148):webpack-less图片文件的转化