基于java的英文翻译字典

基于java的英文翻译字典,附有源代码,源数据库初始化文件

源码地址

dict_demo: 提取一段英文对话中的英文词汇,输出为英文单词字典形式

解析json字条
    private void readFile(String pathname) {long start = System.currentTimeMillis();
//        String pathname = ;int count = 0;int errcount = 0;try (FileReader reader = new FileReader(pathname);BufferedReader br = new BufferedReader(reader)) {String line;while ((line = br.readLine()) != null) {EnglishDictVo englishDictVo = JSONObject.parseObject(line, EnglishDictVo.class);String headWord = englishDictVo.getHeadWord();String bookId = englishDictVo.getBookId();Object sentence = englishDictVo.getContent().getWord().getContent().getSentence();String ukphone = englishDictVo.getContent().getWord().getContent().getUkphone();String usphone = englishDictVo.getContent().getWord().getContent().getUsphone();String tranCn = englishDictVo.getContent().getWord().getContent().getTrans().get(0).getTranCn();EnglishDict englishDict = new EnglishDict();englishDict.setEnglishWord(headWord);englishDict.setBritishSound(ukphone);englishDict.setAmericanSound(usphone);englishDict.setChineseWord(tranCn);englishDict.setTag(bookId);if (sentence != null) {englishDict.setSentence(JSONObject.toJSONString(sentence));}if (headWord == null || bookId == null || ukphone == null || usphone == null || tranCn == null) {errcount++;continue;}// 这里可以不做单词唯一的校验。导入多本词汇。给出多个单词书的实例EnglishDict englishDictQuery = englishDictMapper.selectOne(Wrappers.<EnglishDict>lambdaQuery().eq(EnglishDict::getEnglishWord, headWord).last("limit 1"));if (englishDictQuery == null) {englishDictMapper.insert(englishDict);count++;}}} catch (IOException e) {e.printStackTrace();}long end = System.currentTimeMillis();System.out.println("====== 入库 " + count + "   错误" + errcount);System.out.println("====== 耗时 " + (end - start));}
从内容中提取词汇
  public ReportVo extractKeywords(String contentString) {ReportVo reportVo = new ReportVo();String[] s = contentString.replace(" ", ",").split(",");HashSet<String> strings = new HashSet<String>(Arrays.asList(s));if (CollUtil.isNotEmpty(strings)) {Set<String> queryWords = strings.stream().map(vo -> {String s1 = vo.replaceAll("[^a-zA-Z]", ""); // 去掉无用的符号String lowerCase = s1.toLowerCase();return lowerCase;}).collect(Collectors.toSet());List<EnglishDict> englishDicts = englishDictMapper.selectList(Wrappers.<EnglishDict>lambdaQuery().in(EnglishDict::getEnglishWord, queryWords));reportVo.setWordNum(englishDicts.size());List<ReportVo.WordVo> words = englishDicts.stream().map(vo -> {ReportVo.WordVo wordVo = new ReportVo.WordVo();wordVo.setAmericanSound(vo.getAmericanSound());wordVo.setBritishSound(vo.getBritishSound());wordVo.setChinese(vo.getChineseWord());wordVo.setEnglish(vo.getEnglishWord());return wordVo;}).collect(Collectors.toList());reportVo.setWords(words);} else {reportVo.setWordNum(0);reportVo.setWords(Collections.EMPTY_LIST);}return reportVo;}
初始化接口如下

在这里插入图片描述

一千条耗时5秒

在这里插入图片描述
在这里插入图片描述
把剩下的也插入
在这里插入图片描述

查询接口如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 事务传播机制详解

Spring Boot 事务传播机制详解 1. 事务传播机制概述 Spring Boot 中的事务传播机制用于处理多个事务方法之间相互调用时的事务行为&#xff0c;保证数据的完整性和一致性。当务传播机制定义了在调用一个事务方法时&#xff0c;当前事务该如何传播或传递。Spring Boot 中的事务…

数据结构篇:旋转操作在AVL树中的实现过程

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; https://pan.quark.cn/s/06d5ed47e33b AVL树是平衡二叉搜索树的一种&#xff0c;它通过旋转操作来保持树的平衡。AVL树的特点是&#xff0c;任何节点的两个子树的高度最大差别…

微服务链路追踪ELK

微服务链路追踪&ELK 链路追踪概述链路追踪sluthzipkinelk日志管理平台 一 链路追踪 1 概述 1.1 为什么需要链路追踪 ​ 微服务架构是一个分布式架构&#xff0c;它按业务划分服务单元&#xff0c;一个分布式系统往往有很多个服务单元。由于服务单元数量众多&#xff0…

PostgreSQL 快速入门与实战

1、概述 前面2篇博客给大家详细的介绍了PostgreSQL的安装和配置&#xff0c;本篇文章就带着大家一起学习一下PostgreSQL的用法&#xff0c;主要内容包括 基本的数据库操作、用户管理、数据备份、SCHEMA(模式)以及和MySQL的区别。 2、数据库基本操作 PostgreSQL是严格遵守SQL规…

Apple - File System Events Programming Guide

本文翻译整理自&#xff1a;File System Events Programming Guide (pdated: 2012-12-13) https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40005289 文章目录 一、介…

C++将任意文件编码为汉字文本实现简单加密,将汉字文本转码还原原文件实现解密

C将任意文件编码为汉字文本实现简单加密&#xff0c;将汉字文本转码还原原文件实现解密。 #include <QCoreApplication> #include <iostream> #include <fstream> #include <map> #include <vector> #include <string> #include <loca…

[Rust] 求Vec中的最值、统计特定值的数量和统计数组总和

一、简介 本文以Vec<i32>为例&#xff0c;介绍了在Rust中如何求 Vec<T>容器中中最大值、最小值&#xff0c;如何确定特定值的下标、如何统计其中特定值的数量和统计数组元素的总和。 二、代码 0. Rust 中 Vec<T> 是什么&#xff1f; 在Rust中 Vec<T&g…

基于System-Verilog的FPGA设计与仿真

一、System-Verilog System Verilog的发展 SystemVerilog 的出现是为了因应日益复杂的数位电路设计和验证需求。虽然Verilog HDL 在早期的数位电路设计中得到了广泛应用&#xff0c;但随着技术的发展和电路复杂度的增加&#xff0c;Verilog HDL 在某些方面已经显得有些不足以满…

leetcode 56合并区间

思路 合并就是首先应该按照left左边界排序&#xff0c;排完序以后&#xff0c;如果i的左边界小于等于i-1的右边界&#xff0c;说明有重合&#xff0c;此时这两个可以合并&#xff0c;右边界应该取最大值。 代码 排序 我是定义了一个类,存储左右边界&#xff0c;先将数组转化…

Linux Centos 环境下搭建RocketMq集群(双主双从)

1、下载rocketmq的包 下载 | RocketMQ 2、配置环境变量 1、编辑环境变量文件&#xff1a;vim /etc/profile2、加入如下配置&#xff1a; #rocketmq 4.9.8 ROCKETMQ_HOME/home/rocketmq/rocketmq-4.9.8 export PATH${ROCKETMQ_HOME}/bin:${PATH}3、刷新配置&#xff1a;source…

OpenStack入门体验及一键部署

OpenStack入门体验 技能目标&#xff1a; 了解云计算概念 了解OpenStack 了解OpenStack的构成 会OpenStack单机环境一键部署 从控制台认识OpenStack各项功能会 通过OpenStack控制台创建云主机 什么是云计算 云计算(cloudcomputing)是一种基于网络的超级计算模式&a…

51单片机STC89C52RC——2.1 独立按键控制LED亮灭

目录 目的 一&#xff0c;STC单片机模块 二&#xff0c;独立按键 2.1 独立按键位置 2.2 独立按键电路图 三&#xff0c;创建Keil项目 四&#xff0c;代码 五&#xff0c;代码编译、下载到51单片机 六&#xff0c;效果 目的 当独立K1按键按下时LED D1 点亮&#x…

10:Hello, World!的大小

OpenJudge - 10:Hello, World!的大小 描述 还记得在上一章里&#xff0c;我们曾经输出过的“Hello, World!”吗&#xff1f; 它虽然不是本章所涉及的基本数据类型的数据&#xff0c;但我们同样可以用sizeof函数获得它所占用的空间大小。 请编程求出它的大小&#xff0c;看看跟你…

微信小程序中实现将数据库返回的数据对象res.data赋值给两个变量,并且这两个变量互不影响,改变一个变量中对象值的同时不影响另一个变量

背景 今天在做功能需求的时候&#xff0c;遇到一个问题&#xff0c;就是想把获取到数据库的数据res.data&#xff08;res.data是对象&#xff09;&#xff0c;赋值给两个不同&#xff08;包括值和地址&#xff09;的变量action1和action2&#xff0c;其中一个变量需要将res.da…

一般简单的功能使用GIS 服务器工具还需要进行扩展开发吗?

有网友困惑怎么使用了我们的 GIS 服务器工具&#xff0c;一些简单的功能需不需要对服务器进行扩展开发&#xff1f;下面我们首先看一下标准GIS WEB服务器例如GEOSERVER&#xff0c;QGISSERVER、GIS数据快捷共享发布工具&#xff08;建立自己的地图网站&#xff09;及其它一些商…

【Python基础】内置属性

1. __name__ 查看对象名 py文件被直接运行时&#xff0c;__name__ __main__ py文件被导入使用&#xff0c;__name等于文件名 2.__doc__ 查看文档注释 3.__all__ 模块的内置属性&#xff0c;默认存放的是模块里面所有的对象(变量&#xff0c;函数名) __all__ […

【Unity】加速Unity编辑器模式启动时间

Unity每次Play之后都会Reload Script Assemblies&#xff08;重新加载脚本程序集&#xff09;。 如果我们没有使用很多Assem&#xff0c;则并不需要在播放前重新编译。 可以在设置中将此事的重新编译关闭。 在Edit > Project Settings > Editor 面板中 找到Enter Play…

OpenGL3.3_C++_Windows(3)

GLSL Shader基础 Shader&#xff08;把输入转化为输出,运行在GPU上&#xff09;&#xff1a;首先要声明版本&#xff0c;有各自的入口点main&#xff08;&#xff09;顶点数据上限:16个包含4分量&#xff1a;16 * 4 64个分量向量&#xff1a;容器vec。使用.x、.y、.z和.w&am…

算法设计与分析 实验2 分治法求最近点对

目录 一、实验目的 二、实验概述 三、实验内容 四、问题描述 1.实验基本要求 2.实验亮点 3.实验说明 五、算法原理和实现 1. 算法原理和实现 实验流程 数据生成 数据去重 2. 蛮力法 算法原理 实验伪代码 时间复杂度分析 3. 分治法 算法描述 算法内容 实验流…

*args和**kwargs这个在python中的意思

1、**kwargs 在Python中&#xff0c;是一个用于解包字典的操作符。当在函数调用时使用时&#xff0c;它会将字典中的键值对解包为关键字参数传递给函数。这样可以方便地将字典中的数据作为关键字参数传递给函数。 例如&#xff0c;如果有一个字典data {a: 1, b: 2}&#xff…