`
MouseLearnJava
  • 浏览: 467431 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用PinYin4j实现汉字转拼音

阅读更多

 

在项目中,可能使用拼音缩写来完成搜索。比如,以商品查询为例,一般的查询会按照商品编号、商品名称等来查询,另外也可以按照商品名称的拼音缩写以autoComplete的方式来完成搜索。

本文给出一个使用PinYin4j实现汉字转拼音的实例:

    import net.sourceforge.pinyin4j.PinyinHelper;  
    import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;  
    import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;  
    import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;  
    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
       
    public final class PinYinGenerator {  
       
        private static final String EMPTY = "";  
       
        /** 大写输出 */  
        private static final HanyuPinyinOutputFormat OUTPUT_FORMAT = new HanyuPinyinOutputFormat();  
        static {  
            OUTPUT_FORMAT.setCaseType(HanyuPinyinCaseType.UPPERCASE);  
            OUTPUT_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
        }  
       
        /** 
         * 汉字转拼音的方法 
         * 
         * 如好丽友好多鱼(浓香茄汁)33g转换成HAOLIYOUHAODUOYU(NONGXIANGQIEZHI)33g 
         * 
         * @param chineseCharacters 
         * @return 
         * @throws BadHanyuPinyinOutputFormatCombination 
         */  
        @SuppressWarnings("deprecation")  
        public static String formatToPinYin(String chineseCharacters)  
                throws BadHanyuPinyinOutputFormatCombination {  
            if (null == chineseCharacters || EMPTY.equals(chineseCharacters.trim()))  
                return chineseCharacters;  
       
            return PinyinHelper.toHanyuPinyinString(chineseCharacters,  
                    OUTPUT_FORMAT, EMPTY);  
        }  
       
        /** 
         * 汉字转拼音的方法 
         * 
         * 如:好丽友好多鱼(浓香茄汁)33g转换成HLYHDY(NXQZ)33g 
         * 
         * @param chineseCharacters 
         * @return 
         * @throws BadHanyuPinyinOutputFormatCombination 
         */  
        public static String formatAbbrToPinYin(String chineseCharacters)  
                throws BadHanyuPinyinOutputFormatCombination {  
            if (null == chineseCharacters || EMPTY.equals(chineseCharacters.trim()))  
                return chineseCharacters;  
       
            char[] chars = chineseCharacters.toCharArray();  
            StringBuilder sb = new StringBuilder();  
            for (char c : chars) {  
                if (c > 127) {  
                    sb.append(PinyinHelper.toHanyuPinyinStringArray(c,  
                            OUTPUT_FORMAT)[0].toCharArray()[0]);  
                } else {  
                    sb.append(c);  
                }  
            }  
            return sb.toString();  
        }  
       
    }  

 

测试代码和结果如下:

    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
       
    public class PinYinTest {  
       
        private static final String BANK_NAME = "中国人民银行";  
        private static final String NAME = "好丽友好多鱼(浓香茄汁)33g";  
       
        public static void main(String[] args)  
                throws BadHanyuPinyinOutputFormatCombination {  
       
            System.out.printf("(Full PinYin) Convert %s to %s\n", NAME,  
                    PinYinGenerator.formatToPinYin(NAME));  
       
            System.out.printf("(Abbr PinYin) Convert %s to %s\n", NAME,  
                    PinYinGenerator.formatAbbrToPinYin(NAME));  
       
            System.out.printf("(Full PinYin) Convert %s to %s\n", BANK_NAME,  
                    PinYinGenerator.formatToPinYin(BANK_NAME));  
       
            System.out.printf("(Abbr PinYin) Convert %s to %s\n", BANK_NAME,  
                    PinYinGenerator.formatAbbrToPinYin(BANK_NAME));  
       
        }  
       
    }  

 

更多例子,请访问 : http://thecodesample.com/

1
5
分享到:
评论
1 楼 devilyard 2014-11-11  
多音字有办法解决吗

相关推荐

    使用拼音4j汉字转拼音例子

    以下是对“使用拼音4j汉字转拼音例子”的详细解释。 首先,我们需要了解`pinyin4j-2.5.0.jar`文件。这是一个包含了拼音4j库的Java类和方法的JAR文件,我们需要将其添加到项目的类路径(Classpath)中,以便在程序中...

    java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII

    本篇将详细探讨如何在Java和Android环境中实现汉字转拼音以及汉字转ASCII的功能。 首先,我们来看汉字转拼音。在Java中,可以利用开源库`Pinyin4j`来实现这一功能。`Pinyin4j`是一个强大的Java库,能够将汉字转换为...

    关于汉字转拼音的实现方法.rar(简单方便实用)

    此外,实现汉字转拼音还可以考虑使用开源项目,如Pinyin4j(Java)、PyPinyin(Python)等,它们提供了丰富的功能和良好的社区支持。但如果你选择使用提供的库文件,那么你需要对C++或C#等支持DLL导入的语言有一定...

    汉字转拼音大小写全拼首字母pinyin4j-jar

    使用pinyin4j进行汉字转拼音的步骤大致如下: 1. **设置输出格式**: 通过`HanyuPinyinOutputFormat`类,我们可以设置拼音的输出形式。例如,`format.setCaseType(HanyuPinyinCaseType.LOWERCASE)`将所有拼音转换...

    汉字转换拼音 java

    例如,使用Pinyin4j库,只需引入依赖,然后通过调用特定方法,就能快速地将汉字转换为拼音。下面是一个简单的示例: ```java import net.sourceforge.pinyin4j.PinyinHelper; public class HanziToPinyin { ...

    delphi12 汉字转拼音全拼及简拼 XE

    2. **第三方库**:对于更复杂的拼音转换需求,如简拼、多音字处理等,开发者可能会选择使用第三方库,如`HanLP`、`Pinyin4j`(Java)或`OpenCC`等。虽然这些库不是直接在Delphi环境下使用,但可以通过创建接口或者...

    中文汉字转拼音 大写(默认) 小写 首字母大写

    在IT领域,中文汉字转拼音是一项常见的处理任务,特别是在自然语言处理、文本分析以及编程中。这个任务的主要目的是将汉字转换成对应的汉语拼音,以便计算机能够更好地理解和处理中文信息。以下将详细介绍汉字转拼音...

    拼音4j 基本用法

    拼音4j是一个专门用于处理中文拼音的Java库,它为开发者提供了方便快捷的接口,以便在程序中进行汉字与拼音的转换、拼音排序等操作。在Java开发中,如果需要处理中文字符的拼音信息,拼音4j是一个值得考虑的工具。...

    中文转拼音工具类,pinyin4j-2.5.0.jar 适用于地址人名

    《中文转拼音工具类——pinyin4j-2.5.0.jar 在处理地址与人名中的应用》 在处理中文数据时,有时我们需要将汉字...通过合理利用pinyin4j提供的API,开发者可以极大地提高工作效率,简化涉及中文拼音转换的项目开发。

    java实现中文转拼音

    首先,Java中实现中文转拼音主要依赖于第三方库,如Pinyin4j或HanyuPinyin等。Pinyin4j是一个广泛使用的Java库,它提供了方便的方法来获取汉字的拼音表示。下面是一段简单的使用Pinyin4j库将中文转换为拼音的示例...

    使用pinyin4j将中文转换为拼音

    总的来说,pinyin4j是一个强大且易于使用的Java库,它使得在Java项目中处理中文拼音变得轻松。通过理解和应用pinyin4j,开发者可以高效地解决与中文拼音相关的各种问题,无论是简单的文本转换还是复杂的自然语言处理...

    汉字转换为拼音,取汉字的拼音首字母

    总的来说,`pinyin4j`库为Java开发者提供了强大的汉字转拼音功能,简化了处理中文文本的复杂性,是进行汉字相关处理的得力工具。通过熟练掌握和运用`pinyin4j`,我们可以轻松实现汉字到拼音的转换,从而在各种IT应用...

    java拼音搜索pinyin4j

    总的来说,"java拼音搜索pinyin4j"这个项目结合了Java Web开发的基础知识和汉字拼音处理的专业工具,通过Servlet三层架构实现了一个高效的中文搜索功能。开发者可以在这个基础上进一步扩展,如增加拼音排序、语音...

    将汉字转换成拼音 java 源码

    主要关注点在于如何使用`pinyin4j`库将汉字转换成拼音,并且理解其中的一些配置选项以及方法实现。 ### 关键知识点 #### 1. Pinyin4j 库简介 - **Pinyin4j** 是一个强大的Java库,主要用于将中文汉字转换为拼音,...

    pinyin4j的简化版 汉字转成拼音

    为此,有人对pinyin4j 2.5版本进行了简化,旨在提高性能并降低使用门槛,让开发者能更轻松地实现汉字转拼音的功能。 简化版的pinyin4j在保留核心功能的同时,剔除了不必要的模块,优化了代码结构,使得整体运行效率...

    Android汉字转拼音例子

    通过以上内容,我们可以了解到在Android中实现汉字转拼音的基本原理、应用场景以及使用第三方库的方法。在实际开发中,选择合适的库并结合具体需求进行优化,可以有效地解决汉字与拼音之间的转换问题。

    java后台汉字转拼音

    除了Pinyin4j,还有一些其他的库,如HanLP、SmartChineseAnalyzer等,它们提供了更复杂的自然语言处理功能,包括汉字转拼音。这些库可能更适合需要高级语言分析的场景。 在实际开发中,汉字转拼音可以应用于多个...

    Java汉字转拼音(支持多音字)

    在解压缩后的文件列表中提到的“Hanyupinyin”,很可能是包含了`Pinyin4j`库的JAR文件或其他相关的资源,这些资源可以帮助开发者在本地环境中实现汉字转拼音的功能。如果需要更深入地研究或定制功能,可以查看`...

    java汉字转拼音(全拼和首字母)

    本篇文章将深入探讨如何使用Java实现汉字转拼音的功能,包括获取汉字的全拼和首字母。 首先,我们需要理解汉字转拼音的基本原理。汉语拼音是用拉丁字母表示汉字发音的一种方式,全拼是每个汉字对应的完整拼音,而首...

    汉字转拼音库pinyin4j

    "汉字转拼音库pinyin4j"便是这样一个工具,它提供了方便的API,使得开发者可以轻松地在Java程序中实现汉字到拼音的转换。 Pinyin4j是一个开源的Java库,由Barry DeZeng开发,它的主要功能就是将汉字转换成汉语拼音...

Global site tag (gtag.js) - Google Analytics