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

 更新时间:2022年08月12日 15:45:06   作者:一灰灰  
这篇文章主要为大家介绍了java开源好用的简繁转换类库推荐,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

今天给大家介绍一个非常有意思类库,基于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开源简繁转换类库的资料请关注脚本之家其它相关文章!

相关文章

  • Spring集成Quartz的简单配置的方法

    Spring集成Quartz的简单配置的方法

    本篇文章主要介绍了Spring集成Quartz的简单配置的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Java中包装类介绍与其注意事项

    Java中包装类介绍与其注意事项

    Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,所以在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类,有些地方也翻译为外覆类或数据类型类。
    2017-02-02
  • 教你用JAVA写文本编辑器(一)

    教你用JAVA写文本编辑器(一)

    对于学习java编程的小伙伴们,常常需要编写一个类似文本编辑器的东西,下面这篇文章主要给大家介绍了关于如何用JAVA写文本编辑器的相关资料,需要的朋友可以参考下
    2021-11-11
  • Java实现Excel与HTML互转

    Java实现Excel与HTML互转

    Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看具体实现方法吧
    2025-01-01
  • spring cloud oauth2 feign 遇到的坑及解决

    spring cloud oauth2 feign 遇到的坑及解决

    这篇文章主要介绍了spring cloud oauth2 feign 遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Mybatis接口Mapper内的方法为啥不能重载吗

    Mybatis接口Mapper内的方法为啥不能重载吗

    这篇文章主要介绍了Mybatis接口Mapper内的方法为啥不能重载吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring Shell 命令行实现交互式Shell应用开发

    Spring Shell 命令行实现交互式Shell应用开发

    本文主要介绍了Spring Shell 命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Java的文档注释之生成帮助文档的实例

    Java的文档注释之生成帮助文档的实例

    下面小编就为大家分享一篇Java的文档注释之生成帮助文档的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • SpringSecurity Web权限方案实现全过程

    SpringSecurity Web权限方案实现全过程

    Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的Web集成,下面这篇文章主要给大家介绍了关于SpringSecurity Web权限方案实现的相关资料,需要的朋友可以参考下
    2024-01-01
  • Java自动化工具Ant的基础使用教程

    Java自动化工具Ant的基础使用教程

    这篇文章主要介绍了Java自动化工具Ant的基础使用教程,例子在Windows系统下操作演示,讲解了Ant基本的文件操作和属性,需要的朋友可以参考下
    2016-02-02

最新评论