zoukankan      html  css  js  c++  java
  • java中文转拼音

    简介

    在我们使用手机通讯录或各种APP的搜索功能时,既可以根据中文搜索,也可以根据拼音搜索,这种时候就使用到了中文转拼音的功能了。

    实现

    pinyin4j

    引入maven依赖

    <dependency>
       <groupId>com.belerweb</groupId>
       <artifactId>pinyin4j</artifactId>
       <version>2.5.1</version>
    </dependency>
    

    实例

    public class Client {
    
      public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        //拼音小写
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        //不带声调
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        //要转换的中文,格式,转换之后的拼音的分隔符,遇到不能转换的是否保留   wo,shi,zhong,guo,ren,,hello
        System.out.println(PinyinHelper.toHanYuPinyinString("我是中国人,hello", format, ",", true));
      }
    
    }
    

    输出结果为

    wo,shi,zhong,guo,ren,,hello
    

    可以看到使用开源工具包实现中文转拼音还是很简单的。

    其实就是将所有中文和对应的拼音保存起来并加载到内存中,转换时直接查找。

    jpinyin

    引入maven依赖

    <dependency>
       <groupId>com.github.stuxuhai</groupId>
       <artifactId>jpinyin</artifactId>
       <version>1.1.8</version>
    </dependency>
    

    实例

    public class Client {
    
      public static void main(String[] args) throws PinyinException {
        //要转换的中文,转换之后的拼音分隔符,拼音格式带声调  wǒshìzhōngguórén,hello
        System.out.println(
            PinyinHelper.convertToPinyinString("我是中国人,hello", "", PinyinFormat.WITH_TONE_MARK));
      }
    
    }
    

    原理也是提前保存转换关系直接查询。

  • 相关阅读:
    快速制作高保真原型不得不知的小技巧
    EXC_BAD_ACCESS的本质详解以及僵尸模式调试原理
    Android开发的那些坑和小技巧
    谈Runtime机制和使用的整体化梳理
    在Mac OSX下设置前端开发环境
    uglifyjs压缩JS
    背投广告js
    鼠标到哪tl到哪
    word-wrap同word-break的区别(转)
    HTML中的转义字符
  • 原文地址:https://www.cnblogs.com/strongmore/p/14063899.html
Copyright © 2011-2022 走看看