Java中将汉字转为拼音

原创 2016年06月01日 10:06:44

转载请标明出处:http://blog.csdn.net/liu1252247624/article/details/51553825

源码地址:http://download.csdn.net/detail/liu1252247624/9537283

首先,加入pinyin4j-2.5.0.jar包,jar包在源码中有

写工具类

public class PingYinUtil {
    /**
     * 将字符串中的中文转化为拼音,其他字符不变
     * 
     * @param inputString
     * @return
     */
    public static String getPingYin(String inputString) {
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        format.setVCharType(HanyuPinyinVCharType.WITH_V);
 
        char[] input = inputString.trim().toCharArray();
        String output = "";
 
        try {
            for (int i = 0; i < input.length; i++) {
                if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
                    output += temp[0];
                } else
                    output += java.lang.Character.toString(input[i]);
            }
        } catch (BadHanyuPinyinOutputFormatCombination e) {
            e.printStackTrace();
        }
        return output;
    }
    /**  
     * 获取汉字串拼音首字母,英文字符不变  
     * @param chinese 汉字串  
     * @return 汉语拼音首字母  
     */  
    public static String getFirstSpell(String chinese) {   
            StringBuffer pybf = new StringBuffer();   
            char[] arr = chinese.toCharArray();   
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();   
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
            for (int i = 0; i < arr.length; i++) {   
                    if (arr[i] > 128) {   
                            try {   
                                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);   
                                    if (temp != null) {   
                                            pybf.append(temp[0].charAt(0));   
                                    }   
                            } catch (BadHanyuPinyinOutputFormatCombination e) {   
                                    e.printStackTrace();   
                            }   
                    } else {   
                            pybf.append(arr[i]);   
                    }   
            }   
            return pybf.toString().replaceAll("\\W", "").trim();   
    }   
    /**  
     * 获取汉字串拼音,英文字符不变  
     * @param chinese 汉字串  
     * @return 汉语拼音  
     */  
    public static String getFullSpell(String chinese) {   
            StringBuffer pybf = new StringBuffer();   
            char[] arr = chinese.toCharArray();   
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();   
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
            for (int i = 0; i < arr.length; i++) {   
                    if (arr[i] > 128) {   
                            try {   
                                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);   
                            } catch (BadHanyuPinyinOutputFormatCombination e) {   
                                    e.printStackTrace();   
                            }   
                    } else {   
                            pybf.append(arr[i]);   
                    }   
            }   
            return pybf.toString();   
    }  
}

然后直接调接口就行

public class Test {
	public static void main(String[] args) {
		String str="汉字转拼音";
		System.out.println("原为:"+str);
		System.out.println("转换后为:"+PingYinUtil.getPingYin("汉字转拼音"));
	}
}

运行结果



版权声明:本文为博主原创文章,欢迎转载,转载务必注明文章出处,作者信息。

相关文章推荐

Java中将汉字转为拼音的Demo

  • 2016年06月01日 09:56
  • 173KB
  • 下载

android 中将汉字转换为拼音

  • 2013年05月20日 09:13
  • 26KB
  • 下载

iOS中将汉字转换成拼音的方法

在ios开发中, 我们经常会遇到将汉字按照其拼音的手写大字母排序的问题, 那么我们该如何做呢?...

一款java写的将汉字转为拼音的工具类

package com.zhcw.kaijiang.util; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforg...
  • wyc_cs
  • wyc_cs
  • 2013年07月02日 09:33
  • 1007

java中将汉语转成拼音

开发中有时候有这样的需求,需要将汉语转换成拼音,比如将“北京”转成“BJ”或“BeiJing”,我在项目中用的是pinyin4j-2.5.0.jar,代码如下: import net.sourcef...
  • abc_key
  • abc_key
  • 2012年02月22日 14:39
  • 3299

JAVA实现汉字转换为拼音 pinyin4j/JPinyin

在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个很好大的工程,还好网上有公开的第三方jar支持转换,结合网上很多前辈的代...

Java 汉字转拼音(完美支持解决多音字)

上一篇文章Java 汉字转拼音
  • FX_SKY
  • FX_SKY
  • 2014年09月28日 15:07
  • 8965

Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合

这几天想做一个这样子的功能:在查询客户信息的时候,可以直接根据客户姓名的拼音缩写进行,例如,输入 HZ 就可以查询到姓名为 【黄镇】的客户。  在网上查询到的比较好的做法是在客户信息字段中加...

java将汉字转化为拼音

使用pinyin4j将汉字转化为拼音讲解目录: 将汉字转换为全拼及首拼 扩展汉字 资源下载 1、将汉字转换为全拼及首拼 public static void main(String[] args) {...

java实现中文汉字转拼音 Pinyin4j的基本用法

一、前言工作中有时候会遇到汉字拼音转换的需求,例如:用户首字母搜索某个内容的时候,wzry 可搜索 王者荣耀相关的。这里推荐使用Pinyin4j,它是sourceforge.net上的一个开源项目,提...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中将汉字转为拼音
举报原因:
原因补充:

(最多只允许输入30个字)