zoukankan      html  css  js  c++  java
  • Java-汉字繁体拼音转换

      1 import com.github.stuxuhai.jpinyin.ChineseHelper;
      2 import com.github.stuxuhai.jpinyin.PinyinFormat;
      3 import com.github.stuxuhai.jpinyin.PinyinHelper;
      4 
      5 /**
      6  * @ClassName: ChineseConvertPinyinUtil
      7  * @Description: 汉语繁体拼音转换工具类
      8  */
      9 public final class ChineseConvertPinyinUtil {
     10     private static final String SPACEMARK = "";
     11     private ChineseConvertPinyinUtil() {}
     12 
     13     /**
     14      * 检查汉字是否为多音字
     15      * @param pinYinStr 需转换的汉字
     16      * @param deleteBlank 转换后去掉非打印字符
     17      * @param spaceMark 非打印字符
     18      * @return true 多音字,false 不是多音字
     19      */
     20     public static boolean checkPinYin(char pinYinStr) {
     21         boolean check = false;
     22         try {
     23             check = PinyinHelper.hasMultiPinyin(pinYinStr);
     24         } catch (Exception e) {
     25             e.printStackTrace();
     26         }
     27         return check;
     28     }
     29 
     30     /**
     31      * 转换为每个汉字对应拼音首字母字符串
     32      * @param pinYinStr 需转换的汉字
     33      * @param deleteBlank 转换后去掉非打印字符
     34      * @param spaceMark 非打印字符
     35      * @return 拼音字符串
     36      */
     37     public static String convertToGetShortPinYin(String pinYinStr, boolean deleteBlank) {
     38         String tempStr = null;
     39         try {
     40             tempStr = PinyinHelper.getShortPinyin(pinYinStr);
     41         } catch (Exception e) {
     42             tempStr = pinYinStr;
     43             e.printStackTrace();
     44         }
     45         if (deleteBlank) {
     46             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
     47         }
     48         return tempStr;
     49     }
     50 
     51     /**
     52      * 转换为有声调的拼音字符串
     53      * @param pinYinStr 汉字
     54      * @param deleteBlank 转换后去掉非打印字符
     55      * @param spaceMark 非打印字符
     56      * @return 有声调的拼音字符串
     57      */
     58     public static String convertToMarkPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
     59         String tempStr = pinYinStr;
     60         try {
     61             if (spaceMark == null) {
     62                 spaceMark = SPACEMARK;
     63             }
     64             tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_MARK);
     65 
     66         } catch (Exception e) {
     67             tempStr = pinYinStr;
     68             e.printStackTrace();
     69         }
     70         if (deleteBlank) {
     71             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
     72         }
     73         return tempStr;
     74     }
     75 
     76     /**
     77      * 转换为数字声调字符串
     78      * @param pinYinStr 需转换的汉字
     79      * @param deleteBlank 转换后去掉非打印字符
     80      * @param spaceMark 非打印字符
     81      * @return 转换完成的拼音字符串
     82      */
     83     public static String convertToNumberPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
     84         String tempStr = null;
     85         try {
     86             if (spaceMark == null) {
     87                 spaceMark = SPACEMARK;
     88             }
     89             tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_NUMBER);
     90         } catch (Exception e) {
     91             tempStr = pinYinStr;
     92             e.printStackTrace();
     93         }
     94         if (deleteBlank) {
     95             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
     96         }
     97         return tempStr;
     98     }
     99 
    100     /**
    101      * 繁体转换为简体
    102      * @param pinYinSt
    103      * @param deleteBlank 转换后去掉非打印字符
    104      * @return
    105      */
    106     public static String convertToSimplified(String pinYinSt, boolean deleteBlank) {
    107         String tempStr = null;
    108         try {
    109             tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt);
    110         } catch (Exception e) {
    111             tempStr = pinYinSt;
    112             e.printStackTrace();
    113         }
    114         if (deleteBlank) {
    115             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
    116         }
    117         return tempStr;
    118     }
    119 
    120     /**
    121      * 转换为不带音调的拼音字符串
    122      * @param pinYinStr 需转换的汉字
    123      * @param deleteBlank 转换后去掉非打印字符
    124      * @param spaceMark 非打印字符
    125      * @return 拼音字符串
    126      */
    127     public static String convertToTonePinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
    128         String tempStr = null;
    129         try {
    130             if (spaceMark == null) {
    131                 spaceMark = SPACEMARK;
    132             }
    133             tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITHOUT_TONE);
    134         } catch (Exception e) {
    135             tempStr = pinYinStr;
    136             e.printStackTrace();
    137         }
    138         if (deleteBlank) {
    139             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
    140         }
    141         return tempStr;
    142     }
    143 
    144     /**
    145      * 简体转换为繁体
    146      * @param pinYinStr
    147      * @param deleteBlank 转换后去掉非打印字符
    148      * @return
    149      */
    150     public static String convertToTraditional(String pinYinStr, boolean deleteBlank) {
    151         String tempStr = null;
    152         try {
    153             tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr);
    154         } catch (Exception e) {
    155             tempStr = pinYinStr;
    156             e.printStackTrace();
    157         }
    158         if (deleteBlank) {
    159             tempStr = tempStr.replaceAll("\s*", SPACEMARK);
    160         }
    161         return tempStr;
    162     }
    163 
    164     public static void main(String[] args) {
    165         String str = "重慶 most input 
     a b c#        d";
    166         System.out.println(convertToSimplified(str, true));
    167         System.out.println(checkPinYin('重'));
    168         System.out.println(convertToMarkPinYin(str, true, null));
    169         System.out.println(convertToGetShortPinYin(str, true));
    170         System.out.println(convertToNumberPinYin(str, true, null));
    171         System.out.println(convertToTonePinYin(str, true, null));
    172         System.out.println(convertToTraditional(str, true));
    173     }
    174 }

     依赖:

    1 <dependency>

    2 <groupId>com.github.stuxuhai</groupId>

    3 <artifactId>jpinyin</artifactId>

    4 <version>1.1.8</version>

    5 </dependency> 

  • 相关阅读:
    Testlink1.9.17使用方法( 第三章 初始配置[配置用户、产品] )
    Testlink1.9.17使用方法(第二章 登录&汉化设置)
    Testlink1.9.17使用方法(第一章 前言)
    TestLink-Windows安装教程
    Linux-Redmine安装方法
    怎么使用Fiddler进行抓包
    配置ADB到Windows环境变量
    Android获取定位权限,获取设备所在的经纬度
    Paint.FontMetrics
    Bitmap上下合成图片
  • 原文地址:https://www.cnblogs.com/wang1001/p/9768251.html
Copyright © 2011-2022 走看看