zoukankan      html  css  js  c++  java
  • 使用PinYin4J汉字转拼音

      1 import net.sourceforge.pinyin4j.PinyinHelper;
      2 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
      3 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
      4 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
      5 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
      6 
      7 /**
      8  * 汉字转拼音,英文字符不变
      9  * @version 1.0
     10  * 
     11  */
     12 public class PinYinToolkit {
     13     
     14     /**
     15      * 汉字转换汉语拼音首字母,英文字符不变
     16      * 例如:北京--> bj
     17      * @param chinese 汉字
     18      * @return String
     19      */
     20     public static String cn2FirstSpell(String chinese){
     21         StringBuilder pinyin = new StringBuilder();
     22         char[] nameChar = chinese.toCharArray();
     23         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
     24         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
     25         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
     26         for(int i = 0; i < nameChar.length;i++){
     27             if(nameChar[i] > 128){
     28                 try {
     29                     String[] py = PinyinHelper.toHanyuPinyinStringArray(nameChar[i],defaultFormat);
     30                     if(py != null){
     31                         pinyin.append(py[0].charAt(0));
     32                     }
     33                 } catch (BadHanyuPinyinOutputFormatCombination e) {
     34                     e.printStackTrace();
     35                 }
     36             } else {
     37                 pinyin.append(nameChar[i]);
     38             }
     39         }
     40         return pinyin.toString();
     41     }
     42     
     43     /**
     44      * 汉字转换汉语拼音,英文字符不变
     45      * 例如:北京--> beijing
     46      * @param chinese 汉字
     47      * @return String
     48      */
     49     public static String cn2Spell(String chinese){
     50         StringBuilder pinyin = new StringBuilder();
     51         char[] nameChar = chinese.toCharArray();
     52         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
     53         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
     54         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
     55         for(int i = 0; i < nameChar.length;i++){
     56             if(nameChar[i] > 128){
     57                 try {
     58                     String[] py = PinyinHelper.toHanyuPinyinStringArray(nameChar[i],defaultFormat);
     59                     if(py != null){
     60                         pinyin.append(py[0]);
     61                     }
     62                 } catch (BadHanyuPinyinOutputFormatCombination e) {
     63                     e.printStackTrace();
     64                 }
     65             } else {
     66                 pinyin.append(nameChar[i]);
     67             }
     68         }
     69         return pinyin.toString();
     70     }
     71     
     72     /**
     73      * 拼音转换汉语拼音,拼音首字母大写,英文字符不变
     74      * 例如:北京--> BeiJing
     75      * @param chinese 汉字
     76      * @return String
     77      */
     78     public static String cn2SpellFirstUpperCase(String chinese){
     79         StringBuilder pinyin = new StringBuilder();
     80         char[] nameChar = chinese.toCharArray();
     81         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
     82         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
     83         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
     84         for(int i = 0; i < nameChar.length;i++){
     85             if(nameChar[i] > 128){
     86                 try {
     87                     String[] py = PinyinHelper.toHanyuPinyinStringArray(nameChar[i],defaultFormat);
     88                     if(py != null){                
     89                         pinyin.append(py[0].substring(0, 1).toUpperCase() + py[0].substring(1));
     90                     }
     91                 } catch (BadHanyuPinyinOutputFormatCombination e) {
     92                     e.printStackTrace();
     93                 }
     94             } else {
     95                 pinyin.append(nameChar[i]);
     96             }
     97         }
     98         return pinyin.toString();
     99     }
    100 }
  • 相关阅读:
    Oracle UTL_HTTP(收集汇总有用资料)
    UTL_HTTP Call a Web Service and Pass Parameters as Part of the URL
    How to Create Modifiers Using the API QP_MODIFIERS_PUB.PROCESS_MODIFIERS
    HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item
    Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier
    修改量更新API
    关于销售订单高级定价的一点疑惑
    Useful Scripts for E-Business Suite Applications Analysts
    OPEN A PO ORDER OR SO ORDER
    更改EBS服务器域名/IP
  • 原文地址:https://www.cnblogs.com/dongliyang/p/2880683.html
Copyright © 2011-2022 走看看