`
一纸红颜岂值倾尽天下
  • 浏览: 29203 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java将汉字解析成拼音

    博客分类:
  • java
阅读更多

pinyin4j的使用很方便,一般转换只需要使用PinyinHelper类的静态工具方法即可:

 String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘赵’);
 //该类还有其他的拼音转换形式,但是基本上用不到,就不介绍了
 返回的数组即是该字符的拼音,如上例就是pinyin[0]=zhao,后面的数字代表声调,声调为5表示轻读,无声调。之所谓返回数组,是因为被判定的汉字有可能有多个读音。如果输入的参数不是汉字,则返回null。
 
    需要下载pinyin4j-2.5.0.jar 包
package com.achni.util;

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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class SpellHelper {
	
    //将中文转换为英文
    public static String getEname(String name) throws BadHanyuPinyinOutputFormatCombination {
    	
    	//首先需要创建格式化对象HanyuPinyinOutputFormat
        HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat();

        //设置大小写格式
        //outputFormat.setCaseType(HanyuPinyinCaseType);
        //HanyuPinyinCaseType.LOWERCASE 转换后以全小写方式输出
        //HanyuPinyinCaseType.UPPERCASE 转换后以全大写方式输出
        pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);


        //方法参数HanyuPinyinToneType有以下常量对象:
        //HanyuPinyinToneType.WITH_TONE_NUMBER 用数字表示声调,例如:zhao4
        //HanyuPinyinToneType.WITHOUT_TONE 无声调表示,例如:zhao
        //HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示,例如:zhao
        pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        
        //方法参数HanyuPinyinVCharType有以下常量对象:
        //HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音, 
        //HanyuPinyinVCharType.WITH_V 以V表示该字符, 
        //HanyuPinyinVCharType.WITH_U_UNICODE  
        pyFormat.setVCharType(HanyuPinyinVCharType.WITH_V);

     return PinyinHelper.toHanyuPinyinString(name, pyFormat,"");
		
		
    }

  

    public static void main(String[] args) {
        try {
			System.out.println(getEname("梅艳芳"));
		} catch (BadHanyuPinyinOutputFormatCombination e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

    }

}
 
1
0
分享到:
评论
3 楼 goodpoeple 2014-10-10  
[size=small][/size]

    [*]
引用
[i][/i][b][/b]
[flash=200,200][/flash][url][/url]
2 楼 kingcs 2014-10-09  
package com.kingcs.kingcscode.tools.pinyin;

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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
* 输入传入中文的拼音
*/
public class Chinese2PinYin {

public static String getPinYin(String chinese) throws BadHanyuPinyinOutputFormatCombination {

HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();

// fix case type to lowercase firstly, change VChar and Tone
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

// WITH_U_AND_COLON and WITH_TONE_NUMBER
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
// WITH_V and WITHOUT_TONE
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

StringBuffer buffer = new StringBuffer();
for(Character c : chinese.toCharArray()){
buffer.append(PinyinHelper.toHanyuPinyinStringArray(c, outputFormat)[0]);
buffer.append(" ");
}
return buffer.toString().substring(0, buffer.length() - 1);
}

public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {
String s = "我们都是中国人";
System.out.println(s);
String pinYin = getPinYin(s);
System.out.println(pinYin);
}
}
1 楼 kingcs 2014-10-09  
上面的方法过时了


package com.kingcs.kingcscode.tools.pinyin;

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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
* 输入传入中文的拼音
*/
public class Chinese2PinYin {

public static String getPinYin(String chinese) throws BadHanyuPinyinOutputFormatCombination {

HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();

// fix case type to lowercase firstly, change VChar and Tone
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

// WITH_U_AND_COLON and WITH_TONE_NUMBER
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
// WITH_V and WITHOUT_TONE
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

StringBuffer buffer = new StringBuffer();
for(Character c : chinese.toCharArray()){
buffer.append(PinyinHelper.toHanyuPinyinStringArray(c, outputFormat)[0]);
buffer.append(" ");
}
return buffer.toString().substring(0, buffer.length() - 1);
}

public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {
String s = "我们都是中国人";
System.out.println(s);
String pinYin = getPinYin(s);
System.out.println(pinYin);
}
}

相关推荐

    java版汉字生成拼音小工具带源码

    Java版的汉字生成拼音小工具是一款实用的软件,主要用于将汉字转换为其对应的拼音表示,这对于中文编程、文本处理、搜索引擎优化以及多语言支持等方面都具有重要作用。这款工具由Java语言编写,具有良好的跨平台特性...

    一个获得汉字拼音首字母的java程序

    该Java程序的实用价值在于,它提供了一种简便的方式,将复杂的汉字数据转换为易于处理的拼音首字母形式,这对于构建中文信息检索系统、中文姓名数据库管理、以及任何需要快速识别和排序中文文本的应用场景都极其有用...

    java拼音解析.zip

    "java拼音解析.zip"这个压缩包提供的核心是`pinyin4j-2.5.0.jar`库,它是一个强大的Java库,专门用于汉字到拼音的转换。以下是对这个库及其应用的详细解释。 `pinyin4j`是由Barry DeZeng开发的一个开源项目,它的...

    java 汉字转换拼音

    根据提供的文件信息,本文将详细解析“Java汉字转换拼音”的实现方法及原理,并结合实际代码进行分析。 ### 一、项目概述 #### 标题:Java汉字转换拼音 该标题明确指出项目的主要功能是利用Java语言实现汉字到拼音...

    Java,获取汉字拼音、部首、笔画、笔画数目源文件、源码

    Pinyin4j提供了API,能够将单个汉字转换为对应的拼音,支持声母、韵母和声调。 对于部首,这是汉字结构分析的一部分。部首是汉字的基本构造单元,通常用于字典的查找和分类。在Java中,我们需要一个包含部首信息的...

    java多音字转拼音解决办法

    输入一个中文字符串,将其拆分成单个汉字,然后查找词典。如果汉字在词典中,选择最合适的拼音;如果不在词典中,可能需要依赖其他策略,如使用最常见读音或使用第三方库如Pinyin4j。 Pinyin4j是一个专门处理Java...

    java获取中文拼音字母

    在Java编程语言中,处理中文字符并将其转换为对应的拼音字母是一项常见的任务,尤其是在文本处理、搜索引擎优化(SEO)或中文输入法等场景下。"GetPinyin"标签表明我们将会探讨一个特定的库或者方法,用于实现这个...

    java源码:中文转拼音库 pinyin4j.zip

    《Java源码解析:pinyin4j中文转拼音库》 在Java开发中,处理中文字符,特别是将中文转换为拼音的需求广泛存在。pinyin4j是一个经典的Java库,专门用于实现这一功能。这个库简单易用,适用于各种场景,如搜索引擎...

    拼音输入法-java

    本文将深入探讨一个基于Java语言编写的拼音输入法系统,通过分析其工作原理和核心功能,帮助读者理解如何利用Java技术构建这样的系统。 一、Java语音编程基础 Java作为一种跨平台的编程语言,具有丰富的类库和强大...

    汉字转换成拼音方法详解

    本篇文章将详细解析如何在Java中实现汉字到拼音的转换,并提供相关的jar包资源。 首先,Java中的`java.util.prefs`包提供了基本的拼音转换功能,但它的支持并不全面,无法处理多音字或特殊字符。因此,通常我们会...

    java汉字转拼音代码(很全,可以解决2w多个汉字)

    在Java编程语言中,将汉字转换为拼音是一项常见的任务,特别是在处理中文文本或者进行中文语音合成等场景。本文将深入探讨如何使用Java实现这个功能,主要基于提供的标题和描述。 首先,我们需要理解汉字转拼音的...

    Java汉字转拼音

    ### Java汉字转拼音知识点解析 #### 一、概述 在Java开发中,有时我们需要将汉字转换成拼音,这种需求常见于各种应用场景,如中文姓名转拼音用于生成国际化友好的用户名或进行拼音排序等。本文将详细介绍如何利用`...

    java汉字转拼音

    在Java编程语言中,汉字转拼音是一项常见的需求,特别是在处理中文数据、搜索引擎优化(SEO)或者构建基于拼音的排序和搜索功能时。本教程将详细讲解如何在Java中实现这一功能,并提供一个DEMO示例。 首先,我们...

    Java实现汉字转换为拼音.txt

    ### Java实现汉字转换为拼音:关键技术点解析 #### 核心技术:汉字转拼音功能的实现 在给定的代码片段中,展示了如何利用Java语言实现将汉字转换为拼音的功能。这一过程涉及到的关键技术点包括: 1. **数据结构...

    Java 汉字转拼音

    在Java编程语言中,汉字转拼音是一项常见的需求,特别是在处理文本数据、搜索引擎优化(SEO)或者中文语音合成等场景。`pinyin4j`是一个非常流行的开源库,它提供了便捷的方式来将汉字转换为对应的拼音表示。`pinyin...

    汉字转拼音(支持生僻字)

    通过网上的汉字拼音对照表构建的一个二维数组,通过遍历汉字获取拼音,基本很多生僻字都支持,看了网上的通过GBK码获得的拼音代码,这种代码会导致很多汉字不能找到,比如一坨粪的”坨“。这个的话连“丨”都能查到...

    java 汉字转拼音.pdf

    ### Java汉字转拼音知识点 #### 一、概述 在Java编程语言中,将汉字转换为拼音是一项常见的需求,尤其是在处理中文文本数据时。本篇文章基于一份名为“java汉字转拼音.pdf”的文档,深入探讨如何利用Java实现这一...

    java汉字转拼音的代码

    在Java编程语言中,将汉字转换为拼音是一项常见的任务,特别是在处理中文文本、搜索优化或者语音合成等场景。本篇文章将深入探讨如何使用Java实现这一功能,并提供一个百试百灵的代码示例。 首先,Java本身并不直接...

    汉字转换成拼音

    2. **汉字到拼音映射**:利用已有的汉字拼音库,如pinyin4j(Java)、PyPinyin(Python)等,将汉字转化为拼音。这些库通常包含完整的汉字到拼音的映射关系。 3. **首字母提取**:从完整的拼音中提取首字母,如果是...

    把汉字转为拼音

    综上所述,将汉字转换为拼音在Oracle中需要结合使用Oracle的内置函数和Java存储过程。通过`UTL_I18N.RICH_TO_RAW`转换字符编码,再借助Java的Pinyin4j库进行实际的拼音转换,我们可以高效且准确地完成汉字到拼音的...

Global site tag (gtag.js) - Google Analytics