<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      「Java工具類」漢語轉拼音工具類HanyuPinyinHelper.java

      介紹語

      本號主要是Java常用關鍵技術點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術分享;datax、kafka、flink等大數據處理框架的技術分享。文章會不斷更新,歡迎碼友關注點贊收藏轉發!

      望各位碼友點擊關注,沖1000粉。后面會錄制一些視頻教程,圖文和視頻結合,比如:圖書介紹網站系統、搶購系統、大數據中臺系統等。技術才是程序猿的最愛,碼友們沖啊

      如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉發收藏,以備不時之需。

      正文:

      拼音轉換工具類,用到的場景比較少。

      例子1

       String s = "大師兄師傅被妖怪抓走了";
       System.out.println(HanyuPinyinHelper.toPinyin(s));
       System.out.println(HanyuPinyinHelper.toPinyinOfFirstLetter(s));
       ?
       System.out.println(HanyuPinyinHelper.getFirstLettersUpper(s));
       System.out.println(HanyuPinyinHelper.getFirstLettersLower(s));
       ?
       // 控制臺輸出
       dashixiongshifubeiyaoguaizhuazoule
       DaShiXiongShiFuBeiYaoGuaiZhuaZouLe
       DSXSFBYGZZL
       dsxsfbygzzl

      工具類源碼:

      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;
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;
      
      public class HanyuPinyinHelper {
      
          private static final Logger LOGGER = LoggerFactory.getLogger(HanyuPinyinHelper.class);
      
          /**
           * 將文字轉為漢語拼音
           *
           * @param chinese 要轉成拼音的中文
           */
          public static String toPinyin(String chinese) {
              char[] cl_chars = chinese.trim().toCharArray();
              StringBuilder hanyupinyin = new StringBuilder();
              HanyuPinyinOutputFormat defaultFormat = format();
              try {
                  for (int i = 0; i < cl_chars.length; i++) {
                      // 如果字符是中文,則將中文轉為漢語拼音
                      if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")) {
                          hanyupinyin.append(PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0]);
                      } else {// 如果字符不是中文,則不轉換
                          hanyupinyin.append(cl_chars[i]);
                      }
                  }
              } catch (BadHanyuPinyinOutputFormatCombination e) {
                  LOGGER.error("字符不能轉成漢語拼音", e);
              }
              return hanyupinyin.toString();
          }
      
          /**
           * 將文字轉為漢語拼音
           *
           * @param chinese 要轉成拼音的中文
           */
          public static String toPinyinOfFirstLetter(String chinese) {
              char[] cl_chars = chinese.trim().toCharArray();
              StringBuilder hanyupinyin = new StringBuilder();
              HanyuPinyinOutputFormat defaultFormat = format();
              try {
                  for (int i = 0; i < cl_chars.length; i++) {
                      String str = String.valueOf(cl_chars[i]);
                      // 如果字符是中文,則將中文轉為漢語拼音
                      if (str.matches("[\u4e00-\u9fa5]+")) {
                          //多音字只取第一個
                          String s = PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];
                          char firstLetter = s.charAt(0);
                          String pinyin = String.valueOf(firstLetter).toUpperCase().concat(s.substring(1));
                          hanyupinyin.append(pinyin);
                      } else {
                          // 如果字符不是中文,則不轉換
                          hanyupinyin.append(cl_chars[i]);
                      }
                  }
              } catch (BadHanyuPinyinOutputFormatCombination e) {
                  LOGGER.error("字符不能轉成漢語拼音", e);
              }
              return hanyupinyin.toString();
          }
      
          public static String getFirstLettersUpper(String chinese) {
              return getFirstLetters(chinese, HanyuPinyinCaseType.UPPERCASE);
          }
      
          public static String getFirstLettersLower(String chinese) {
              return getFirstLetters(chinese, HanyuPinyinCaseType.LOWERCASE);
          }
      
          private static String getFirstLetters(String chinese, HanyuPinyinCaseType caseType) {
              char[] cl_chars = chinese.trim().toCharArray();
              StringBuilder hanyupinyin = new StringBuilder();
              HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
              // 輸出拼音全部大寫
              defaultFormat.setCaseType(caseType);
              // 不帶聲調
              defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
              try {
                  for (int i = 0; i < cl_chars.length; i++) {
                      String str = String.valueOf(cl_chars[i]);
      
                      if (str.matches("[\u4e00-\u9fa5]+")) {
                          // 如果字符是中文,則將中文轉為漢語拼音,并取第一個字母
                          hanyupinyin.append(
                                  PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1));
                      } else if (str.matches("[0-9]+")) {
                          // 如果字符是數字,取數字
                          hanyupinyin.append(cl_chars[i]);
                      } else if (str.matches("[a-zA-Z]+")) {
                          // 如果字符是字母,取字母
                          hanyupinyin.append(cl_chars[i]);
                      } else {// 否則不轉換
                          hanyupinyin.append(cl_chars[i]);
                      }
                  }
              } catch (BadHanyuPinyinOutputFormatCombination e) {
                  LOGGER.error("字符不能轉成漢語拼音", e);
              }
              return hanyupinyin.toString();
          }
      
          private static HanyuPinyinOutputFormat format() {
              HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
              // 輸出拼音全部小寫
              defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
              // 不帶聲調
              defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
              defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
      
              return defaultFormat;
          }
      
      
          public static void main(String[] args) {
              String s = "大師兄師傅被妖怪抓走了";
              System.out.println(HanyuPinyinHelper.toPinyin(s));
              System.out.println(HanyuPinyinHelper.toPinyinOfFirstLetter(s));
      
              System.out.println(HanyuPinyinHelper.getFirstLettersUpper(s));
              System.out.println(HanyuPinyinHelper.getFirstLettersLower(s));
      
          }
      }

      maven依賴包

      <dependency>
      	<groupId>com.belerweb</groupId>
      	<artifactId>pinyin4j</artifactId>
      	<version>2.5.0</version>
      </dependency>

      鄙人編碼十年多,在項目中也積累了一些工具類,很多工具類在每個項目都有在用,很實用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經不記得是ctrl+c的還是自己封裝的了,現在有空就會總結項目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權行為請通知鄙人處理。

      計劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項目中不管是普通單體項目還是多模塊maven項目或是分布式微服務,一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

      posted @ 2021-10-31 18:58  Java夜未眠  閱讀(102)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩一区在线中文字幕| 94人妻少妇偷人精品| 亚洲中文字幕第二十三页| 国产AV老师黑色丝袜美腿| 日本乱码在线看亚洲乱码| 最新精品国偷自产在线| 久久99久国产麻精品66| 亚洲日韩国产成网在线观看| 视频一区二区不中文字幕| 国产第一页浮力影院入口| 亚洲精品一区二区三区在| 377P欧洲日本亚洲大胆| 亚洲理论在线A中文字幕| 欧洲码亚洲码的区别入口| 精品一精品国产一级毛片| 亚洲av成人午夜福利| av男人的天堂在线观看国产| 国产一区二区三区尤物视频| jizzjizz少妇亚洲水多| 亚洲一二三区精品美妇| 国产av丝袜旗袍无码网站| 91精品乱码一区二区三区| 男女啪啪高潮激烈免费版| 欧美午夜精品久久久久久浪潮| 色吊丝二区三区中文字幕| 午夜爽爽爽男女免费观看影院 | 99久久久国产精品消防器材| 国产情侣激情在线对白| 视频一区二区三区在线视频| 欧美午夜成人片在线观看| 亚洲欧美日韩第一页| 深夜释放自己在线观看| 久久免费观看归女高潮特黄| 东京热一精品无码av| 在线观看美女网站大全免费| 久久国产综合色免费观看| 亚洲无av码一区二区三区| 中文字幕一区二区精品区 | 国产亚洲一在无在线观看| 人妻丝袜中文无码AV影音先锋专区| 亚洲中文精品一区二区|