>  기사  >  Java  >  Java 오픈소스 분석 예시와 사용하기 쉬운 단순화 및 전통적 변환 클래스 라이브러리

Java 오픈소스 분석 예시와 사용하기 쉬운 단순화 및 전통적 변환 클래스 라이브러리

PHPz
PHPz앞으로
2023-05-11 08:19:051213검색

    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 Warehouse에서 찾을 수 없다면 당황하지 마세요. 먼저 0.2.5를 사용해 보세요0.2.6版本于2022-08-11上传,若在mvn仓库搜索不到,不要慌,可以先使用0.2.5

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

    // https://mvnrepository.com/artifact/com.github.liuyueyi/quick-transfer-core
    implementation &#39;com.github.liuyueyi:quick-transfer-core:0.2.6&#39;

    此外,针对网络不好的小伙伴,也可以通过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 &#39;https://jitpack.io&#39; }
    	}
    }
    dependencies {
        implementation &#39;com.github.liuyueyi.quick-chinese-transfer:quick-transfer-core:0.2.6&#39;
    }

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

    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

    프로젝트용 gradle이라면 관리도 매우 간단합니다

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

    또한 네트워크 연결이 좋지 않은 친구의 경우 jitpack을 통해 종속성을 가져올 수도 있습니다. 구체적인 단계는 다음과 같습니다

    maven 종속성

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

    gradle 종속성

    rrreee

    환경이 준비된 후에는 직접 사용할 수 있으며 사용 자세도 매우 매우 간단합니다

    rrreee

    엔트리 클래스 ChianUtils는 Simplified 간의 변환을 지원합니다. 여기서는 홍콩번체+대만번체로 구분되는데, 둘의 주요 차이점은 일부 문자, 단어의 이름이 다르다는 점입니다🎜🎜일반적으로 가장 간단한 중국어 간체와 번체를 사용할 수 있습니다. 🎜🎜위 사례의 출력 결과는 다음과 같습니다.🎜
    🎜s2t -->경사월 삼성동굴입니다... 장수국수, 손오공, 주팔계, 당승, 사사상, 백룡마, 탑왕 리징, 서유기에 대해 농담을 하는데, 많은 사람들이 이렇게 말하고, 짐을 싸서 금을 줍습니다.
    s2hk --> 이것이 비스듬한 달 싼싱입니다. 동굴 ... Changshou Noodles, Sun Wukong, Zhu Bajie, Tang Monk, Monk Sha, White Dragon Horse, Li Jing, King Pagoda, 서유기에 대해 농담, 많은 사람들이 이렇게 말하고 정리하고 금을 줍습니다. = 채
    s2tw - -> 이곳은 사월삼성동굴... 창수국수, 손오공, 주팔계, 당승, 사사, 백룡마, 이경왕 탑, 서유기(Journey to the West)에 대해 농담으로 많은 사람들이 이렇게 말하고, 청소하면 금을 얻을 수 있습니다. 재능 = 재능
    t2s -->이것이 사월의 삼성 동굴입니다. .. 장수 국수, Sun Wukong, Zhu Bajie, Tang Monk, Monk Sha, White Dragon Horse, Li Jing, Pagodas의 왕, 서유기에 대해 농담, 많은 사람들이 그렇게 말합니다. 청소하고, 금을 줍는 것은 아닙니다. ignorant;taltal=cai
    hk2s -->저무는 달이 있는 이 삼성동굴... 장수국수, 손오공, 주팔계, 당승, 사사, 백룡마, 이경, 왕 of Pagodas, 서유기(Journey to the West)에 대한 농담, 많은 사람들이 모두 이렇게 말하고, 청소하고 금을 줍습니다. Cai
    tw2s -->이 경사진 달이 있는 3성 동굴... Changshou Noodles, Sun Wukong, Zhu Bajie, Tang Monk, Monk Sha, White Dragon Horse, Li Jing 및 Pagodas King은 서유기를 농담하며 많은 사람들이 이렇게 말하고 정리하고 재능을 얻습니다. talent🎜
    🎜2. 고급 사용🎜🎜간단하고 전통적인 변환의 핵심은 사전 관리에 있습니다. 변환이 클래스 라이브러리에서 처음 구현되면 사전이 로드되어 내부 데이터로 구문 분석됩니다. 따라서 처음 호출할 때 콜드 스타트라는 시간이 많이 걸리는 문제가 있습니다🎜🎜2.1 예열🎜🎜 이를 기반으로 사전을 예열하고 적절한 위치에 로드할 수 있습니다. 예를 들어 🎜rrreee🎜preLoad 메소드의 첫 번째 매개변수는 동기식인지 비동기식인지 제어하는 ​​데 사용됩니다. 🎜🎜다음 매개변수는 로드하려는 사전입니다. 🎜🎜2.2 제거🎜🎜 마찬가지로 예열 후 제거가 있습니다. 클라이언트 친구의 경우 불필요한 사전에 대해 제거를 지정할 수 있습니다. 🎜rrreee🎜2.3 일반적인 방법 🎜🎜사용 예에서 첫 번째 섹션에서는 변환을 수행하기 위해 다양한 고유 방법을 제공합니다. 또한 전달된 매개변수에 따라 통합 API 인터페이스 설계에 적합한 사전 유형의 변환을 수행하는 통합 방법을 제공하여 해당 매개변수를 반환합니다. 결과 장면🎜rrreee

    위 내용은 Java 오픈소스 분석 예시와 사용하기 쉬운 단순화 및 전통적 변환 클래스 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제