• 用jpinyin实现汉字转拼音功能


    一、简介

    项目地址:https://github.com/stuxuhai/jpinyin

    JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。

    【JPinyin主要特性】
    1、准确、完善的字库;
    Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字;
    2、拼音转换速度快;
    经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒。
    3、多拼音格式输出支持;
    JPinyin支持多种拼音输出格式:带音标、不带音标、数字表示音标以及拼音首字母输出格式;
    4、常见多音字识别;
    JPinyin支持常见多音字的识别,其中包括词组、成语、地名等;
    5、简繁体中文转换

    Jpinyin里面一共有四个类:

    • ChineseHelper.java     汉字简繁体转换类
    • PinyinFormat.java         拼音格式类
    • PinyinHelper.java          汉字转拼音类
    • PinyinResource.java    资源文件加载类

    二、主要方法介绍

    2.1 convertToPinyinString(String str, String separator)

    /**
     * 将字符串转换成相应格式的拼音
     * @param str 需要转换的字符串
     * @param separator 拼音分隔符
     * @return 字符串的拼音
     */
    public static String convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

    结果:

          String words = "和气生财";final String separator = " ";
    
            // hé qì shēng cái (默认格式)
            PinyinHelper.convertToPinyinString(words, separator);

    2.2 convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

    /**
     * 将字符串转换成相应格式的拼音
     * @param str 需要转换的字符串
     * @param separator 拼音分隔符
     * @param pinyinFormat 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调
     * @return 字符串的拼音
     */
    public static String convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

    结果:

       String str = "你好世界";
    PinyinHelper.convertToPinyinString(str,
    ",", PinyinFormat.WITH_TONE_MARK); // nǐ,hǎo,shì,jiè PinyinHelper.convertToPinyinString(str, ",", PinyinFormat.WITH_TONE_NUMBER); // ni3,hao3,shi4,jie4 PinyinHelper.convertToPinyinString(str, ",", PinyinFormat.WITHOUT_TONE); // ni,hao,shi,jie

    2.3 getShortPinyin(String str)

    /**
     * 获取字符串对应拼音的首字母
     * @param str 需要转换的字符串
     * @return 对应拼音的首字母
     */
    public static String getShortPinyin(String str)

    结果:

        String str = "你好世界";
    
        PinyinHelper.getShortPinyin(str); // nhsj
    2.4 convertToPinyinArray(char c)
    /**
     * 将单个汉字转换为相应格式的拼音
     * @param c 需要转换成拼音的汉字
     * @return 汉字的拼音
     */
    public static String[] convertToPinyinArray(char c)

    结果:

    
    
    String words = "和气生财";

    //
    hé hè huó huò hú pinyins = PinyinHelper.convertToPinyinArray(words.toCharArray()[0]);

    2.5 convertToPinyinArray(char c, PinyinFormat pinyinFormat)

    /**
     * 将单个汉字转换为相应格式的拼音
     * @param c 需要转换成拼音的汉字
     * @param pinyinFormat 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调
     * @return 汉字的拼音
     */
    public static String[] convertToPinyinArray(char c, PinyinFormat pinyinFormat)

    结果:

    String words = "和气生财";

    //
    hé hè huó huò hú pinyins = PinyinHelper.convertToPinyinArray(words.toCharArray()[0], PinyinFormat.WITH_TONE_MARK);

    2.6 hasMultiPinyin(char c)

    /**
     * 判断一个汉字是否为多音字
     * @param c 汉字
     * @return 判断结果,如果是返回true,否则返回false
     */
    public static boolean hasMultiPinyin(char c)

    结果:

     // false
      println(PinyinHelper.hasMultiPinyin('李'));

    源码下载:

    大部分内容参考自:http://blog.csdn.net/ekeuy/article/details/40079475?utm_source=tuicool

  • 相关阅读:
    浅谈三层架构
    尺度空间(Scale space)理论
    漫游Kafka实现篇之消息和日志
    杭电 2095
    .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 计算时间
    Java实现 蓝桥杯VIP 算法提高 最小乘积(提高型)
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/4296896.html
Copyright © 2020-2023  润新知