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("汉字转拼音"));
	}
}

运行结果



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

php中将汉字转为拼音

class Pinyin{       private $_outEncoding = "GB2312";              public function getPinyin($str...
  • alashan007
  • alashan007
  • 2018年01月05日 19:28
  • 9

Java汉字转成汉语拼音工具类

Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包.import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefor...
  • xq358965482
  • xq358965482
  • 2017年12月02日 10:05
  • 20

java中汉字自动转换成拼音

刚刚做完这样一个功能:               这是页面上的一小部分,主要是给选择的课程添加英文名称(约定是课程拼音的首字母组合),以方便后面其他操作。这个文本框实现起来还是需要不少控制的,需...
  • liusong0605
  • liusong0605
  • 2014年04月01日 21:21
  • 4415

java程序将汉字转成拼音的两种方法

1.使用pinyin4j将汉字转成拼音 import net.sourceforge.pinyin4j.PinyinHelper;   import net.sourceforge.pinyin...
  • scholar_man
  • scholar_man
  • 2016年08月13日 09:29
  • 7115

js中将汉字转为相应的拼音

var PinYin = { "a" : "\u554a\u963f\u9515", "ai" : "\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\...
  • l775632765
  • l775632765
  • 2017年02月17日 13:03
  • 1156

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

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

mysql 汉字转成拼音

mysql 汉字转成拼音 全拼、首字母拼音
  • Lili429
  • Lili429
  • 2016年04月26日 09:35
  • 2391

java中汉字转为拼音

转自java程序将汉字转成拼音的两种方法
  • qq_36243824
  • qq_36243824
  • 2017年06月01日 14:16
  • 214

java程序将汉字转成拼音的两种方法

1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包  Java代码   import net.sourceforge.pinyin4j.PinyinHelper;   ...
  • goodyuedandan
  • goodyuedandan
  • 2016年03月07日 11:54
  • 4289

Java获取汉字的拼音

在做中文搜索的时候通常需要考虑拼音搜索,这时就需要获取汉字对应的拼音(包括全拼、简拼),java语言中有pinyin4j开源类库。唯一不足的是对多音字支持不够好,于是自己在其基础上封装了一下,完美支持...
  • FX_SKY
  • FX_SKY
  • 2016年02月15日 18:40
  • 2133
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中将汉字转为拼音
举报原因:
原因补充:

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