java开源好用的简繁转换类库推荐

目录
  • 引言
  • 1. 实例体验
    • maven依赖
    • gradle依赖
  • 2. 进阶使用
    • 2.1 预热
    • 2.2 卸载
    • 2.3 通用方法
  • 3. 小结

引言

今天给大家介绍一个非常有意思类库,基于java实现的简繁体转换,适用于后端、android等开发领域

源码地址:* liuyueyi/quick-chinese-transfer: 简繁转换,支持香港繁体,台湾繁体与简体互转

1. 实例体验

以maven做项目管理,可以直接从中央仓库下载,再pom文件中添加以下依赖即可

<!-- https://mvnrepository.com/artifact/com.github.liuyueyi/quick-transfer-core -->
<dependency>
    <groupId>com.github.liuyueyi</groupId>
    <artifactId>quick-transfer-core</artifactId>
    <version>0.2.6</version>
</dependency>

说明:0.2.6版本于2022-08-11上传,若在mvn仓库搜索不到,不要慌,可以先使用0.2.5

如果是gradle做项目管理,依赖同样很简单

// https://mvnrepository.com/artifact/com.github.liuyueyi/quick-transfer-core
implementation 'com.github.liuyueyi:quick-transfer-core:0.2.6'

此外,针对网络不好的小伙伴,也可以通过jitpack的方式导入依赖,具体姿势如下

maven依赖

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.github.liuyueyi.quick-chinese-transfer</groupId>
    <artifactId>quick-transfer-core</artifactId>
    <version>0.2.6</version>
</dependency>

gradle依赖

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
dependencies {
    implementation 'com.github.liuyueyi.quick-chinese-transfer:quick-transfer-core:0.2.6'
}

环境准备完毕之后,可以直接进行使用了,使用姿势非常非常非常的简单

public void testTrans() {
    String text = "这斜月三星洞…… 长寿面,孙悟空,猪八戒,唐僧,沙和尚,白龙马,李靖,托塔天王, 戏说西游,许多人都这样说,收拾一下,拾金不昧;纔=才";
    // 简体转繁体
    String out = ChineseUtils.s2t(text);
    System.out.println("s2t -->" + out);
    // 简体转香港繁体
    String hkOut = ChineseUtils.s2hk(text);
    System.out.println("s2hk -->" + hkOut);
    // 简体转台湾繁体
    String twOut = ChineseUtils.s2tw(text);
    System.out.println("s2tw --> " + twOut);
    // 繁体转简体
    String origin = ChineseUtils.t2s(out);
    System.out.println("t2s -->" + origin);
    // 香港繁体转简体
    System.out.println("hk2s -->" + ChineseUtils.hk2s(hkOut));
    // 台湾繁体转简体
    System.out.println("tw2s -->" + ChineseUtils.tw2s(twOut));
}

入口类 ChineseUtils 支持简繁互转,这里区分了香港繁体 + 台湾繁体,两者的主要区别在于某些字、词的叫法不一样

通常来讲,使用最简单的简繁互即可

上面的case输出结果如下:

s2t -->這斜月三星洞…… 長壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;纔=才
s2hk -->這斜月三星洞…… 長壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲説西遊,許多人都這樣説,收拾一下,拾金不昧;才=才
s2tw --> 這斜月三星洞…… 長壽麵,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;才=才
t2s -->这斜月三星洞…… 长寿面,孙悟空,猪八戒,唐僧,沙和尚,白龙马,李靖,托塔天王, 戏说西游,许多人都这样说,收拾一下,拾金不昧;才=才
hk2s -->这斜月三星洞…… 长寿面,孙悟空,猪八戒,唐僧,沙和尚,白龙马,李靖,托塔天王, 戏说西游,许多人都这样说,收拾一下,拾金不昧;才=才
tw2s -->这斜月三星洞…… 长寿面,孙悟空,猪八戒,唐僧,沙和尚,白龙马,李靖,托塔天王, 戏说西游,许多人都这样说,收拾一下,拾金不昧;才=才

2. 进阶使用

简繁转换,核心在于词典的管理,改类库在首次实现转换的时候,会加载词典,并解析为内部的数据结构Dict;因此第一次调用时,会出现冷启动的耗时高问题

2.1 预热

基于此,可以再合适的地方先预热加载词典;官方提供了同步预热/异步预热两种方式,如

// 预热加载所有的词典
ChineseUtils.preLoad(true, TransType.values());
// 预加载简体转繁体词典
ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL);
// 预加载简繁互转词典
ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);

preLoad方法的第一个参数,就是用来控制同步还是异步的情况

后面的参数则为希望加载的词典

2.2 卸载

同样有了预热就有卸载,对于客户端的小伙伴来说可能更关注这一点的内存占用;对于不需要的词典,可以指定卸载

// 卸载所有词典
ChineseUtils.unLoad(TransType.values());
// 卸载简繁互转词典
ChineseUtils.unLoad(TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);

2.3 通用方法

在第一节的使用实例中,提供了各种特有的方法来实现转换;同样也提供一个统一的方法,根据传参的词典类型来进行转换;适用于统一api接口的设计,根据传参来返回对应的结果场景

ChineseUtils.transfer("一灰灰blog", TransType.SIMPLE_TO_TRADITIONAL);

3. 小结

最后简单介绍下这个项目,没错这个项目目前是我再维护,核心实现主要来自 chinese-utils,那么为啥要独立搞一个呢? 原因如下

  • 这个项目不再维护了,最后一次提交在15年
  • 词典旧且,有问题的数据较多,所以我完全替换了它的默认词典,改用 HanLP 词典文件
  • 新特性增加(如港台繁体的区分支持,如预热加载)
  • 性能优化等(词典解析规则、匹配算法的改进等)

以上就是java开源好用的简繁转换类库推荐的详细内容,更多关于java开源简繁转换类库的资料请关注我们其它相关文章!

(0)

相关推荐

  • C#调用VB进行简繁转换的方法

    本文实例讲述了C#调用VB进行简繁转换的方法.分享给大家供大家参考.具体分析如下: 首先在C#项目中引用Microsoft.VisualBasic.dll,版本自己选择合适的 然后在项目中添加引用:using Microsoft.VisualBasic; 转换: 转为繁体: outputText=Strings.StrConv(txt待转换文本, VbStrConv.TraditionalChinese); 转为简体: outputText=Strings.StrConv(txt待转换文本, V

  • 用javascript实现的汉字简繁转换

    汉字简繁转换_把你需要转换的内容粘贴在下面的输入框,然后点击按钮即可 function copy(ob) { var obj=findObj(ob); if (obj) { obj.select();js=obj.createTextRange();js.execCommand("Copy");} } function cut(ob) { var obj=findObj(ob); if (obj) { obj.select();js=obj.createTextRange();js.e

  • Python简繁体转换的简单实现步骤

    目录 1.opencc-python 1.1安装opencc-python 1.2内建的opencc翻译配置 1.3简繁体转换 2.zhtools 2.1安装 2.2简繁体转换 3.zhconv 3.1zhconv安装 3.2使用方法 4.文档的简繁体转换 总结 1.opencc-python 首先介绍opencc中的Python实现库,它具有安装简单,翻译准确,使用方便等优点.对于我们日常的需求完全能够胜任. 1.1安装opencc-python 首先在terminal中安装opencc-py

  • JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招

    一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做法是在服务端完成的,即通过某些控件或者过滤器转换文本语言.这里笔者介绍一种简单可行的方法,不是在服务端而是利用前端的 JavaScript 就可以切换正体中文. 大概六年前我还专门写过这议题的博文,这篇也是奠基在那篇文章(旧文也是参考了一高手代码)之上,<对 JavaScript 繁简字切换的小改进>.时过境迁,有必要把代码进行更新一下--以前的太稚

  • PHP 中文简繁互转代码 完美支持大陆、香港、台湾及新加坡

    例子:(简 > 繁)面包 > 麵包 (zh-tw)寮国 > 老撾 (zh-hk)中国人寿 > 中國人壽 (zh-hk)罗纳尔多 > 朗拿度 (zh-hk)(繁 > 簡)記憶體 > 内存 (zh-cn)布殊 > 布什 (zh-cn)資料庫 > 数据库(zh-cn)使用方法 1. 下载 MediaWiki: (http://www.jb51.net/codes/25190.html),解压在路径如:/var/lib/mediawiki-1.13.3 2.

  • Python实现简繁体转换

    简体繁体转换 如今,世界上存在两种中文,一种是中文简体,一种是中文繁体.如果要完全掌握中文语言的自然语言处理,那么简繁都不可避免.所以,掌握了简体与繁体的转换,往往能够事半功倍. 而HanLP也提供了简繁转换的类:CharTable,用它来执行字符正规化.比如简体转换繁体,全角转换半角,大写转换小写,都可以使用该类来实现. 使用CharTable进行简繁体转换 下面,我们来直接使用CharTable进行一段诗词的繁体到简单的转换.具体代码如下所示: if __name__ == "__main_

  • java开源好用的简繁转换类库推荐

    目录 引言 1. 实例体验 maven依赖 gradle依赖 2. 进阶使用 2.1 预热 2.2 卸载 2.3 通用方法 3. 小结 引言 今天给大家介绍一个非常有意思类库,基于java实现的简繁体转换,适用于后端.android等开发领域 源码地址:* liuyueyi/quick-chinese-transfer: 简繁转换,支持香港繁体,台湾繁体与简体互转 1. 实例体验 以maven做项目管理,可以直接从中央仓库下载,再pom文件中添加以下依赖即可 <!-- https://mvnre

  • 一个批量编码转换及ASP/JS加解密/简繁转换的工具

    详情看这里  http://hi.baidu.com/lael80/blog/item/6633d7fc89f9f282b801a061.html  http://www.gzyd.net/lael/coding.rar  文件编码转换/Screnc加解密/简繁转换 1.0  使用注意:  1.使用前请备份,使用本软件造成的损失自负:  2.进行编码转换前请确认所有文件的源编码一致并选择正确,否则可能出现错误.  3.对ASP代码进行加密或解密或简繁转换前须确认文件的编码为ANSI,否则可能出现

  • 使用开源项目JAVAE2 进行视频格式转换

    使用开源项目JAVAE 进行视频格式转换 JAVAE简介: JAVE (Java音频视频编码器)库是ffmpeg项目的Java包装器.开发人员可以利用JAVE2将音频和视频文件从一种格式转换为另一种格式.在示例可以转换成一个AVI文件MG,您可以更改一个DivX视频(youtube) Flash FLV,您可以转换WAV音频文件到MP3和Ogg Vorbis,您可以分离和转换音频和视频跟踪代码,您可以调整视频,改变他们的大小和比例等.JAVE2还支持许多其他格式.容器和操作. 官网地址:http

  • java开源调度如何给xxljob加k8s执行器

    目录 前言 执行器接口 K8S执行器设计 1.在XXL-JOB-ADMIN模块新增执行器 2.引入K8S-CLIENT-JAVA,使用SERVICEACCOUNT机制与K8S交互 3.编写代理执行器调度代码 结语 前言 xxljob 是采用 java 开发的开源的任务调度系统,架构上分为调度管理器.执行器,目前除了官方提供的 java 执行器外,也有 go 开发者提供了 go 语言的执行器(看了 go 执行器的代码,除了任务日志没有实现,其他功能实现都比较完整). xxljob 在设计上,抽象出

  • java对象与json对象之间互相转换实现方法示例

    本文实例讲述了java对象与json对象之间互相转换实现方法.分享给大家供大家参考,具体如下: import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class MainClass { public st

随机推荐