欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java漢字轉拼音工具類完整代碼實例

 更新時間:2020年03月20日 09:04:05   作者:風繾云流  
這篇文章主要介紹了java漢字轉拼音工具類完整代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

添加依賴

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

工具類代碼:

public class PinYinUtils {

  public static HanyuPinyinOutputFormat PINYIN_FORMAT;
  static {

    PINYIN_FORMAT = new HanyuPinyinOutputFormat();
    /**
     * 大小寫設置
     *   LOWERCASE:小寫
     *   UPPERCASE:大寫
     */
    PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    /**
     * 輸出音標設置
     *
     * WITH_TONE_MARK:直接用音標符(VCharType必須設置WITH_U_UNICODE,否則會拋出異常)
     * WITH_TONE_NUMBER:1-4數(shù)字表示音標
     * WITHOUT_TONE:沒有音標
     */
    PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    /**
     * 特殊音符ü的設置
     * WITH_U_AND_COLON:用u表示(沒有設置默認用u表示)
     * WITH_V:用v表示
     * WITH_U_UNICODE:用ü表示
     */
    PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
  }

  /**
   * 取漢字的拼音首字母
   * @param chinese
   * @return
   */
  public static String toFirstPinYin(String chinese){
    StringBuilder result = new StringBuilder();
    //將字符串轉成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進行轉換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
          result.append(pinyinStr[0].charAt(0));//取每個中文的第一個拼音字母
        }else {
          result.append(c);
        }
      }
    } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
      badHanyuPinyinOutputFormatCombination.printStackTrace();
    }
    return result.toString();
  }

  /**
   * 漢字轉拼音小寫
   * @param chinese
   * @return
   */
  public static String toPinYin(String chinese){
    //創(chuàng)建返回對象
    StringBuilder result = new StringBuilder();//方法調用的時候新建,對象沒有共享,不會有線程安全問題。
    //將字符串轉成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進行轉換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//          result.append(pinyinStr[0].charAt(0));//取每個中文的第一個拼音字母
          result.append(pinyinStr[0]);
        }else {
          result.append(c);
        }
      }
    } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
      badHanyuPinyinOutputFormatCombination.printStackTrace();
    }
    return result.toString();
  }
  /**
   * 漢字轉拼音每個字符串的第一個字母大寫其余小寫
   * @param chinese
   * @return
   */
  public static String toUpperStringsFirstCharPinYin(String chinese){
    //創(chuàng)建返回對象
    StringBuilder result = new StringBuilder();//方法調用的時候新建,對象沒有共享,不會有線程安全問題。
    //將字符串轉成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進行轉換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//          result.append(pinyinStr[0].charAt(0));//取每個中文的第一個拼音字母
          String c1 = String.valueOf(pinyinStr[0]);
          result.append(c1.substring(0,1).toUpperCase()).append(c1.substring(1));
        }else {
          result.append(c);
        }
      }
    } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
      badHanyuPinyinOutputFormatCombination.printStackTrace();
    }
    return result.toString();
  }

  public static void main(String[] args) {
    //測試StringBuilder是否有線程安全問題
    String str = "拼音工具lv";
    String pinYin = toUpperStringsFirstCharPinYin(str);
    System.out.println(pinYin);
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 一篇文章弄懂Java和Kotlin的泛型難點

    一篇文章弄懂Java和Kotlin的泛型難點

    這篇文章主要給大家介紹了如何通過一篇文章弄懂Java和Kotlin的泛型難點的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java中JSONObject與JSONArray的使用示例小結

    Java中JSONObject與JSONArray的使用示例小結

    JSONObject-lib包是一個beans,collections,maps,java arrays和xml和JSON互相轉換的包,本文給大家介紹Java中JSONObject與JSONArray的使用示例小結,感興趣的朋友一起看看吧
    2025-02-02
  • svn 清理失敗 (cleanup 失敗) 的快速解決方法

    svn 清理失敗 (cleanup 失敗) 的快速解決方法

    下面小編就為大家?guī)硪黄猻vn 清理失敗 (cleanup 失敗) 的快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java中Future接口詳解

    Java中Future接口詳解

    本文介紹了Java中Future接口及其在異步編程中的應用,包括Future接口的核心方法、FutureTask的使用以及CompletableFuture類的介紹,CompletableFuture類提供了更強大的異步編程能力,支持函數(shù)式編程、計算方法、結果獲取方法以及任務編排方法
    2025-05-05
  • Java中的DelayQueue源碼解析

    Java中的DelayQueue源碼解析

    這篇文章主要介紹了Java中的DelayQueue源碼解析,一個實現(xiàn)PriorityBlockingQueue實現(xiàn)延遲獲取的無界隊列,在創(chuàng)建元素時,可以指定多久才能從隊列中獲取當前元素,只有延時期滿后才能從隊列中獲取元素,需要的朋友可以參考下
    2023-12-12
  • spring-spring容器中bean知識點總結

    spring-spring容器中bean知識點總結

    在本篇文章里小編給大家分享了關于spring-spring容器中bean知識點總結,有需要的朋友們可以學習下。
    2019-08-08
  • 介紹Jersey-Jersey入門基礎

    介紹Jersey-Jersey入門基礎

    REST不是一種新的技術,而僅僅是一個理論,實踐這樣的理論可以讓我們的應用更加先進。
    2013-02-02
  • SpringAOP中的通知Advice詳解

    SpringAOP中的通知Advice詳解

    這篇文章主要介紹了SpringAOP中的通知Advice詳解,Spring 的 AOP 功能中一個關鍵概念是通知Advice與切點Pointcut表達式相關聯(lián)在特定節(jié)點織入一些邏輯,Spring 提供了五種類型的通知,需要的朋友可以參考下
    2023-08-08
  • Java實現(xiàn)Floyd算法求最短路徑

    Java實現(xiàn)Floyd算法求最短路徑

    這篇文章主要為大家詳細介紹了Java實現(xiàn)Floyd算法求最短路徑,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題

    NoHttpResponseException異常解決優(yōu)化HttpClient配置以避免連接問題

    這篇文章主要為大家介紹了NoHttpResponseException異常解決,優(yōu)化HttpClient配置以避免連接問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10

最新評論