`
一纸红颜岂值倾尽天下
  • 浏览: 27939 次
  • 性别: 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拼音解析.zip

    java的拼音解析,用于java开发对,汉字按拼音首字母排序,识别汉字并以拼音形式展现等

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

    一个获取汉字拼音首字母的java程序,简单有效。

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

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

    Android-JavaAndroid中文转拼音稳如狗

    Java,Android中文转拼音,稳如狗!!!

    Pinyin4jDome:Android 中 汉字转成拼音

    Pinyin4jDome Android 中 汉字转成拼音

    JAVA上百实例源码以及开源项目

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

    JAVA上百实例源码以及开源项目源代码

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

    java开源包11

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包6

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包4

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包9

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包101

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包5

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包8

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包10

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包3

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包1

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    Java中汉字转拼音pinyin4j用法实例分析

    主要介绍了Java中汉字转拼音pinyin4j用法,结合实例形式较为详细的分析了pinyin4j库的具体使用技巧,需要的朋友可以参考下

    java开源包2

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

    java开源包7

    J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...

Global site tag (gtag.js) - Google Analytics