zoukankan      html  css  js  c++  java
  • java 中文转化为拼音

    依赖架包:pinyin4j.jar

    package net.jeeshop.core.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 PinYinUtil {
    	/**
    	 * 将字符串中的中文转化为拼音,其他字符不变
    	 * 
    	 * @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();   
        }   
        
        public static void main(String[] args) {
        	String chs = "我是中国人阿三的发生! I'm Chinese!";
        	System.out.println(chs);
        	System.out.println(getPingYin(chs));
            System.out.println(getFirstSpell(chs));
        }
    }
    

      

  • 相关阅读:
    制造业接入物联网的4大优势
    一篇文章读懂什么是串口通信及其工作原理
    4G工业路由器在仓储物流中的应用
    4G工业路由器应用于远程医疗设备监控
    串口服务器在饮料自动化生产线的应用
    PLC和串口服务器在数字化工厂中的作用
    LoRa集中器在石油勘探等领域的应用解决方案
    4G模块为基础的物联网在精准农业中的应用
    4G工业路由器在垃圾和废水处理的应用案例
    HDU 6205 2017沈阳网络赛 思维题
  • 原文地址:https://www.cnblogs.com/chenweichu/p/6237342.html
Copyright © 2011-2022 走看看