java開源好用的簡(jiǎn)繁轉(zhuǎn)換類庫(kù)推薦
引言
今天給大家介紹一個(gè)非常有意思類庫(kù),基于java實(shí)現(xiàn)的簡(jiǎn)繁體轉(zhuǎn)換,適用于后端、android等開發(fā)領(lǐng)域
源碼地址:* liuyueyi/quick-chinese-transfer: 簡(jiǎn)繁轉(zhuǎn)換,支持香港繁體,臺(tái)灣繁體與簡(jiǎn)體互轉(zhuǎn)
1. 實(shí)例體驗(yàn)
以maven做項(xiàng)目管理,可以直接從中央倉(cāng)庫(kù)下載,再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倉(cāng)庫(kù)搜索不到,不要慌,可以先使用0.2.5
如果是gradle做項(xiàng)目管理,依賴同樣很簡(jiǎn)單
// https://mvnrepository.com/artifact/com.github.liuyueyi/quick-transfer-core implementation 'com.github.liuyueyi:quick-transfer-core:0.2.6'
此外,針對(duì)網(wǎng)絡(luò)不好的小伙伴,也可以通過jitpack的方式導(dǎo)入依賴,具體姿勢(shì)如下
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'
}
環(huán)境準(zhǔn)備完畢之后,可以直接進(jìn)行使用了,使用姿勢(shì)非常非常非常的簡(jiǎn)單
public void testTrans() {
String text = "這斜月三星洞…… 長(zhǎng)壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;纔=才";
// 簡(jiǎn)體轉(zhuǎn)繁體
String out = ChineseUtils.s2t(text);
System.out.println("s2t -->" + out);
// 簡(jiǎn)體轉(zhuǎn)香港繁體
String hkOut = ChineseUtils.s2hk(text);
System.out.println("s2hk -->" + hkOut);
// 簡(jiǎn)體轉(zhuǎn)臺(tái)灣繁體
String twOut = ChineseUtils.s2tw(text);
System.out.println("s2tw --> " + twOut);
// 繁體轉(zhuǎn)簡(jiǎn)體
String origin = ChineseUtils.t2s(out);
System.out.println("t2s -->" + origin);
// 香港繁體轉(zhuǎn)簡(jiǎn)體
System.out.println("hk2s -->" + ChineseUtils.hk2s(hkOut));
// 臺(tái)灣繁體轉(zhuǎn)簡(jiǎn)體
System.out.println("tw2s -->" + ChineseUtils.tw2s(twOut));
}
入口類 ChineseUtils 支持簡(jiǎn)繁互轉(zhuǎn),這里區(qū)分了香港繁體 + 臺(tái)灣繁體,兩者的主要區(qū)別在于某些字、詞的叫法不一樣
通常來(lái)講,使用最簡(jiǎn)單的簡(jiǎn)繁互即可
上面的case輸出結(jié)果如下:
s2t -->這斜月三星洞…… 長(zhǎng)壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;纔=才
s2hk -->這斜月三星洞…… 長(zhǎng)壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲説西遊,許多人都這樣説,收拾一下,拾金不昧;才=才
s2tw --> 這斜月三星洞…… 長(zhǎng)壽麵,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;才=才
t2s -->這斜月三星洞…… 長(zhǎng)壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
hk2s -->這斜月三星洞…… 長(zhǎng)壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
tw2s -->這斜月三星洞…… 長(zhǎng)壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
2. 進(jìn)階使用
簡(jiǎn)繁轉(zhuǎn)換,核心在于詞典的管理,改類庫(kù)在首次實(shí)現(xiàn)轉(zhuǎn)換的時(shí)候,會(huì)加載詞典,并解析為內(nèi)部的數(shù)據(jù)結(jié)構(gòu)Dict;因此第一次調(diào)用時(shí),會(huì)出現(xiàn)冷啟動(dòng)的耗時(shí)高問題
2.1 預(yù)熱
基于此,可以再合適的地方先預(yù)熱加載詞典;官方提供了同步預(yù)熱/異步預(yù)熱兩種方式,如
// 預(yù)熱加載所有的詞典 ChineseUtils.preLoad(true, TransType.values()); // 預(yù)加載簡(jiǎn)體轉(zhuǎn)繁體詞典 ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL); // 預(yù)加載簡(jiǎn)繁互轉(zhuǎn)詞典 ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);
preLoad方法的第一個(gè)參數(shù),就是用來(lái)控制同步還是異步的情況
后面的參數(shù)則為希望加載的詞典
2.2 卸載
同樣有了預(yù)熱就有卸載,對(duì)于客戶端的小伙伴來(lái)說可能更關(guān)注這一點(diǎn)的內(nèi)存占用;對(duì)于不需要的詞典,可以指定卸載
// 卸載所有詞典 ChineseUtils.unLoad(TransType.values()); // 卸載簡(jiǎn)繁互轉(zhuǎn)詞典 ChineseUtils.unLoad(TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);
2.3 通用方法
在第一節(jié)的使用實(shí)例中,提供了各種特有的方法來(lái)實(shí)現(xiàn)轉(zhuǎn)換;同樣也提供一個(gè)統(tǒng)一的方法,根據(jù)傳參的詞典類型來(lái)進(jìn)行轉(zhuǎn)換;適用于統(tǒng)一api接口的設(shè)計(jì),根據(jù)傳參來(lái)返回對(duì)應(yīng)的結(jié)果場(chǎng)景
ChineseUtils.transfer("一灰灰blog", TransType.SIMPLE_TO_TRADITIONAL);
3. 小結(jié)
最后簡(jiǎn)單介紹下這個(gè)項(xiàng)目,沒錯(cuò)這個(gè)項(xiàng)目目前是我再維護(hù),核心實(shí)現(xiàn)主要來(lái)自 chinese-utils,那么為啥要獨(dú)立搞一個(gè)呢? 原因如下
- 這個(gè)項(xiàng)目不再維護(hù)了,最后一次提交在15年
- 詞典舊且,有問題的數(shù)據(jù)較多,所以我完全替換了它的默認(rèn)詞典,改用 HanLP 詞典文件
- 新特性增加(如港臺(tái)繁體的區(qū)分支持,如預(yù)熱加載)
- 性能優(yōu)化等(詞典解析規(guī)則、匹配算法的改進(jìn)等)
以上就是java開源好用的簡(jiǎn)繁轉(zhuǎn)換類庫(kù)推薦的詳細(xì)內(nèi)容,更多關(guān)于java開源簡(jiǎn)繁轉(zhuǎn)換類庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java實(shí)現(xiàn)Excel與HTML互轉(zhuǎn)
Excel是一種電子表格格式,而HTM則是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)記語(yǔ)言,雖然兩者在用途上存在差異,但有時(shí)我們需要將數(shù)據(jù)從一種格式轉(zhuǎn)換為另一種格式,下面我們就來(lái)看看具體實(shí)現(xiàn)方法吧2025-01-01
spring cloud oauth2 feign 遇到的坑及解決
這篇文章主要介紹了spring cloud oauth2 feign 遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎
這篇文章主要介紹了Mybatis接口Mapper內(nèi)的方法為啥不能重載嗎,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā)
本文主要介紹了Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā),能夠幫助開發(fā)者快速構(gòu)建功能豐富的命令行應(yīng)用程序,具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
SpringSecurity?Web權(quán)限方案實(shí)現(xiàn)全過程
Spring Security是一個(gè)功能強(qiáng)大且高度可定制的身份驗(yàn)證和授權(quán)框架,專門用于保護(hù)Java應(yīng)用程序的Web集成,下面這篇文章主要給大家介紹了關(guān)于SpringSecurity?Web權(quán)限方案實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-01-01
Java自動(dòng)化工具Ant的基礎(chǔ)使用教程
這篇文章主要介紹了Java自動(dòng)化工具Ant的基礎(chǔ)使用教程,例子在Windows系統(tǒng)下操作演示,講解了Ant基本的文件操作和屬性,需要的朋友可以參考下2016-02-02

