java開源好用的簡繁轉(zhuǎn)換類庫推薦
引言
今天給大家介紹一個非常有意思類庫,基于java實現(xiàn)的簡繁體轉(zhuǎn)換,適用于后端、android等開發(fā)領(lǐng)域
源碼地址:* liuyueyi/quick-chinese-transfer: 簡繁轉(zhuǎn)換,支持香港繁體,臺灣繁體與簡體互轉(zhuǎn)
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'
此外,針對網(wǎng)絡(luò)不好的小伙伴,也可以通過jitpack的方式導(dǎo)入依賴,具體姿勢如下
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)行使用了,使用姿勢非常非常非常的簡單
public void testTrans() { String text = "這斜月三星洞…… 長壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;纔=才"; // 簡體轉(zhuǎn)繁體 String out = ChineseUtils.s2t(text); System.out.println("s2t -->" + out); // 簡體轉(zhuǎn)香港繁體 String hkOut = ChineseUtils.s2hk(text); System.out.println("s2hk -->" + hkOut); // 簡體轉(zhuǎn)臺灣繁體 String twOut = ChineseUtils.s2tw(text); System.out.println("s2tw --> " + twOut); // 繁體轉(zhuǎn)簡體 String origin = ChineseUtils.t2s(out); System.out.println("t2s -->" + origin); // 香港繁體轉(zhuǎn)簡體 System.out.println("hk2s -->" + ChineseUtils.hk2s(hkOut)); // 臺灣繁體轉(zhuǎn)簡體 System.out.println("tw2s -->" + ChineseUtils.tw2s(twOut)); }
入口類 ChineseUtils
支持簡繁互轉(zhuǎn),這里區(qū)分了香港繁體 + 臺灣繁體,兩者的主要區(qū)別在于某些字、詞的叫法不一樣
通常來講,使用最簡單的簡繁互即可
上面的case輸出結(jié)果如下:
s2t -->這斜月三星洞…… 長壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;纔=才
s2hk -->這斜月三星洞…… 長壽麪,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲説西遊,許多人都這樣説,收拾一下,拾金不昧;才=才
s2tw --> 這斜月三星洞…… 長壽麵,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西遊,許多人都這樣說,收拾一下,拾金不昧;才=才
t2s -->這斜月三星洞…… 長壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
hk2s -->這斜月三星洞…… 長壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
tw2s -->這斜月三星洞…… 長壽面,孫悟空,豬八戒,唐僧,沙和尚,白龍馬,李靖,托塔天王, 戲說西游,許多人都這樣說,收拾一下,拾金不昧;才=才
2. 進(jìn)階使用
簡繁轉(zhuǎn)換,核心在于詞典的管理,改類庫在首次實現(xiàn)轉(zhuǎn)換的時候,會加載詞典,并解析為內(nèi)部的數(shù)據(jù)結(jié)構(gòu)Dict;因此第一次調(diào)用時,會出現(xiàn)冷啟動的耗時高問題
2.1 預(yù)熱
基于此,可以再合適的地方先預(yù)熱加載詞典;官方提供了同步預(yù)熱/異步預(yù)熱兩種方式,如
// 預(yù)熱加載所有的詞典 ChineseUtils.preLoad(true, TransType.values()); // 預(yù)加載簡體轉(zhuǎn)繁體詞典 ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL); // 預(yù)加載簡繁互轉(zhuǎn)詞典 ChineseUtils.preLoad(true, TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);
preLoad
方法的第一個參數(shù),就是用來控制同步還是異步的情況
后面的參數(shù)則為希望加載的詞典
2.2 卸載
同樣有了預(yù)熱就有卸載,對于客戶端的小伙伴來說可能更關(guān)注這一點的內(nèi)存占用;對于不需要的詞典,可以指定卸載
// 卸載所有詞典 ChineseUtils.unLoad(TransType.values()); // 卸載簡繁互轉(zhuǎn)詞典 ChineseUtils.unLoad(TransType.SIMPLE_TO_TRADITIONAL, TransType.TRADITIONAL_TO_SIMPLE);
2.3 通用方法
在第一節(jié)的使用實例中,提供了各種特有的方法來實現(xiàn)轉(zhuǎn)換;同樣也提供一個統(tǒng)一的方法,根據(jù)傳參的詞典類型來進(jìn)行轉(zhuǎn)換;適用于統(tǒng)一api接口的設(shè)計,根據(jù)傳參來返回對應(yīng)的結(jié)果場景
ChineseUtils.transfer("一灰灰blog", TransType.SIMPLE_TO_TRADITIONAL);
3. 小結(jié)
最后簡單介紹下這個項目,沒錯這個項目目前是我再維護(hù),核心實現(xiàn)主要來自 chinese-utils,那么為啥要獨立搞一個呢? 原因如下
- 這個項目不再維護(hù)了,最后一次提交在15年
- 詞典舊且,有問題的數(shù)據(jù)較多,所以我完全替換了它的默認(rèn)詞典,改用 HanLP 詞典文件
- 新特性增加(如港臺繁體的區(qū)分支持,如預(yù)熱加載)
- 性能優(yōu)化等(詞典解析規(guī)則、匹配算法的改進(jìn)等)
以上就是java開源好用的簡繁轉(zhuǎn)換類庫推薦的詳細(xì)內(nèi)容,更多關(guān)于java開源簡繁轉(zhuǎn)換類庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Java中Comparable 和 Comparator的用法
這篇文章主要介紹了關(guān)于Java中Comparable 和 Comparator的用法,Comparable 和 Comparator 是關(guān)于排序的兩個接口,用來實現(xiàn) Java 集合中的的排序功能,需要的朋友可以參考下2023-04-04java使用CountDownLatch實現(xiàn)多線程協(xié)作
在多線程編程中,經(jīng)常需要實現(xiàn)一種機(jī)制來協(xié)調(diào)多個線程的執(zhí)行,以確保某些操作在所有線程完成后再進(jìn)行,CountDownLatch?就是?Java?并發(fā)包中提供的一種同步工具,下面我們就來看看如何使用CountDownLatch實現(xiàn)多線程協(xié)作吧2023-11-11詳解Spring Boot讀取配置文件與配置文件優(yōu)先級
這篇文章主要介紹了詳解Spring Boot讀取配置文件與配置文件優(yōu)先級,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08SpringMVC使用JsonView針對統(tǒng)一實體返回不同信息
這篇文章主要為大家介紹了SpringMVC使用JsonView針對統(tǒng)一實體返回不同信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Eclipse配置python開發(fā)環(huán)境過程圖解
這篇文章主要介紹了Eclipse配置python開發(fā)環(huán)境過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03