zoukankan      html  css  js  c++  java
  • 一个汉字转拼音的插件(pinyin4j)

      今天看到一个拼音插件,输入汉字后会自动转换为拼音或者每个字的首字母,在做有些项目开发时也有点用

      pinyin4j提供了汉语转拼音的一个开源库, 支持多种拼音系统:汉语拼音、 通用拼音 、威氏拼音、注音二式、雅礼、 
    国语罗马字。

      但是遗憾的是不支持多音字

      首先下载jar包:http://pinyin4j.sourceforge.net/

    public class PingyinUtils {
    	
    	/**   
         * 汉字转换为汉语拼音首字母,英文字符不变   
         * @param chines 汉字   
         * @return 拼音
         */      
        public static String converterToFirstSpell(String chines){              
             String pinyinName = "";   
             
             //转化为字符
             char[] nameChar = chines.toCharArray();
    //         for(int i=0;i<nameChar.length;i++){
    //        	 System.out.println(nameChar[i]);
    //         }
             
             //汉语拼音格式输出类   
             HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
             
             //输出设置,大小写,音标方式等   
             defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);       
             defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);       
             
             for (int i = 0; i < nameChar.length; i++) {       
                 //如果是中文
            	 if (nameChar[i] > 128) {
                    try {       
                         pinyinName += 
                        	   PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);       
                     } catch (BadHanyuPinyinOutputFormatCombination e) {       
                         e.printStackTrace();       
                     }       
                 }else{//为英文字符    
                     pinyinName += nameChar[i];       
                 }       
             }       
            return pinyinName;       
         }       
            
        /**   
         * 汉字转换位汉语拼音,英文字符不变   
         * @param chines 汉字   
         * @return 拼音   
         */      
        public static String converterToSpell(String chines){               
            String pinyinName = "";       
            char[] nameChar = chines.toCharArray();       
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();       
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);       
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);       
            for (int i = 0; i < nameChar.length; i++) {       
                if (nameChar[i] > 128) {       
                    try {       
                         pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0];       
                     } catch (BadHanyuPinyinOutputFormatCombination e) {       
                         e.printStackTrace();       
                     }       
                 }else{       
                     pinyinName += nameChar[i];       
                 }       
             }       
            return pinyinName;       
         }       
               
        public static void main(String[] args) {       
             System.out.println(converterToFirstSpell("长城有限公司"));
        	
        	System.out.println(converterToSpell("康师傅").toLowerCase());
         }       
    }
    
    

    代码运行结果:

      zcyxgs    //  长转换成了z

      kangshifu

  • 相关阅读:
    数据库分页
    SpringBoot 集成 MQTT
    mybatis的级联查询-懒加载遇到的序列化问题
    springboot学习:第二天
    SpringSecurity学习
    大日志文件查看方式
    logger(七)、springBoot的日志源码查看(LogBack + slf4j)——配置的实际工作类Action
    logger(六)、springBoot的日志源码查看(LogBack + slf4j)—— ContextInitializer
    logger(五)、springBoot的日志源码查看(LogBack + slf4j)——Appender
    logger(四)、springBoot的日志源码查看(LogBack + slf4j)——记录日志
  • 原文地址:https://www.cnblogs.com/jqyp/p/1818015.html
Copyright © 2011-2022 走看看