[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)

A CLI-Based EE Dictionary Supported by API of "Merriam-Webster‘s Collegiate® Dictionary with Audio"
(一款基于命令行的英英词典, 由<韦氏®大词典(综合版)>API提供支持)

GitHub项目地址: https://github.com/hwding/seekDict

如果有疑问及建议请在该repository页面的issues中提出!

准备工作:

程序流程:

COND1: 传入单词或词组 -> 本地是否已有缓存文件? -> 否 -> 拼接请求URL -> 提交 -> 取得返回XML -> 保存在本地 -> 开始解析XML文件

-> 是否为有效查询? -> 是 -> 打印结果

                  -> 否 -> 是否有建议单词或词组? -> 是 -> 提示查无此词并打印建议 -> 删除本地缓存文件

                             -> 否 -> 提示查无此词 -> 删除本地缓存文件

COND2: 传入单词或词组 -> 本地是否已有缓存文件? -> 是 -> 开始解析XML文件 -> 打印结果

可以看出将查询有效的结果缓存在本地可以极大程度的简化重复查询的流程, 以提高效率.

难点:

  • 返回的XML层次极为复杂, 需要逐级拆解以提取有效信息
  • 不同层次信息的组织与显示

注意事项:

1 File file = new File(CACHE_PATH, string + ".tmp");
2 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
3 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
4 Document document = documentBuilder.parse(file);
5 Element rootElement = document.getDocumentElement();
6 NodeList content = rootElement.getChildNodes();

首先读出请求之后缓存在本地的结果文件, 将其解析为Document类, 再使用DOM方法去解析XML中的节点信息

逐层解析后, 将收集到的信息根据XML中的结点层次有序的反馈在CLI中

(具体实现请见见项目地址中的源码, 注释会陆续补充)

截图:

  帮助信息(正在完善中)

  

  有效查询结果

  

  无效查询结果并提供拼写建议

  

时间: 2024-10-09 03:50:58

[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)的相关文章

七款使用命令行的PNG图像处理工具

图像格式有许多种不 同类型,在互联网上最常见的有JPEG.GIF.BMP.TIFF和PNG.每一种图像格式都有它自己的用途,比如GIF是用于动画的,JPEG是用于高 清图片的,这种图片在保存或者调整大小后会自动降低其清晰度,而我们最喜爱的PNG最适合于小型且透明的图片.PNG文件的另一个巨大的优势是这些文件都 是无损的,这就意味着你可以在不丢失清晰度的情况下对PNG文件进行压缩.转自:http://www.elsyy.com/news/2014/1223/2003134937.html 命令行工

使用.NET Core快速开发一个较正规的命令行应用程序

程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但是如何实现像 "cat" 这种功能呢?今天就为大家介绍一个packages来优雅的实现一个命令行应用程序. 一般命令行程序包含什么? 使用方式 帮助信息 子命令 参数 选项 帮助信息 帮助信息如上,介绍了命令的作用和参数.选项作用. 这个是必不可少的. 子命令 一个应用程序打包了多个功能,

开发利器_Httpie.利用跨平台命令行下curl的替代品httpie调试接口?

简单介绍: 说明: 此模块是一个支持直观语法/支持格式色彩输出/支持JSON/支持上传文件表单/支持HTTPS代理认证/支持任意请求数据/支持自定义头部/支持持久化会话/支持类WGET下载特性等的HTTP的命令行客户端,完全可以代替CURL,常用于测试/调试接口 项目地址: https://github.com/jkbrzt/httpie 快速安装: pip install --upgrade httpie GET 相关: http GET https://api.weibo.com/2/tre

Git的使用基于命令行

一.检查Git 使用Git前先检查本机上是否安装了Git,Mac上默认都是安装了Git的 1.打开终端,输入指令,如果已经安装了Git就会显示版本号 git version 2.如果尚未安装Git,可以通过Xcode的Command Line Tools并使用如下命令安装Git xcode-select --install 二.新建项目并上传 1.在远程第三方托管网站上新建一个远程仓库 上一篇文章已经在讲述过如果在GitHub上创建仓库,这里就不在叙述了. 2.本地创建一个新的项目,以Xcode

mupdf 基于命令行的 pdf转图片

下载地址: https://www.mupdf.com/downloads/index.html 使用方法: 打开cmd,切换到mupdf文件路径下,再在命令行中敲入命令  mutool.exe  draw -o file%d.png  file.pdf   输出透明的png mutool.exe convert -F png -O alpha -o file%d.png file.pdf 原文地址:https://www.cnblogs.com/zhaoying/p/12442214.html

用Python设计一个基于命令行的图形界面

Introduction 如今很多开发工作都需要远程进行,比如深度学习需要登录到专门的服务器上.当你需要看一些可视化的结果时,可能需要用到matplotlib或是seaborn这样的绘图库.那么你或许还需要通过ssh或者scp把图片下载到你本地的桌面才能看,这样非常麻烦. 考虑到现在的terminal基本都已经支持24-bit真彩色表示,所以很自然地联想到,能不能直接在terminal中进行画图呢?比如常用的柱状图或热图,就足够能解决很多问题了. 原文地址:http://blog.51cto.c

Ink——一款使用React风格开发命令行应用的nodejs工具

Github: https://github.com/vadimdemedes/ink Ink introduction: React for CLIs. Build and test your CLI output using components. (通过使用组件的方式去搭建和测试你的命令行界面输出) 也就是说,我们可以使用像react那样的方式来组织代码,开发出运行在命令行的工具应用,想想就很激动,因为之前使用如vue-cli这样的工具,看着命令行生成的界面,很是炫酷,于是,今天发现此工具

详解NodeJS和命令行程序

源起 植根于Unix系统环境下的程序,很多都把贯彻Unix系统设计的哲学作为一种追求.Unix系统管道机制的发明者Douglas McIlroy把Unix哲学总结为三点: 专注做一件事,并做到极致.程序协同工作.面向通用接口,如文本数据流.随着Unix/Linux系统在服务器上影响力越发强大,以及各种跨平台解决方案的发展,这种哲学也被带到了各种平台上.若干年前,笔者第一次接触NodeJS和其包管理解决方案NPM时候,就感觉到其官方倡导的风格,和Unix系统哲学非常契合.近年来,随着NodeJS在

SuperSocket入门(四)-命令行协议

前面已经了解了supersocket的一些基本的属性及相关的方法,下面就进入重点的学习内容,通信协议.在没有看官方的文档之前,对于协议的理解首先想到的是TCP和UDP协议.TCP 和 UDP 是传输层协议.在Socket程序中仅仅定义了传输层协议是不能让网络的两端进行通信的.我们需要定义应用层通信协议把我们接收到的二进制数据转化成程序能理解的请求. 命令行协议是一种被广泛应用的协议.一些成熟的协议如 Telnet, SMTP, POP3 和 FTP 都是基于命令行协议的. 在SuperSocke