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

Java漢字轉(zhuǎn)拼音工具類完整代碼實(shí)例

 更新時(shí)間:2020年03月20日 09:04:05   作者:風(fēng)繾云流  
這篇文章主要介紹了java漢字轉(zhuǎn)拼音工具類完整代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

添加依賴

<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();
    /**
     * 大小寫設(shè)置
     *   LOWERCASE:小寫
     *   UPPERCASE:大寫
     */
    PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    /**
     * 輸出音標(biāo)設(shè)置
     *
     * WITH_TONE_MARK:直接用音標(biāo)符(VCharType必須設(shè)置WITH_U_UNICODE,否則會(huì)拋出異常)
     * WITH_TONE_NUMBER:1-4數(shù)字表示音標(biāo)
     * WITHOUT_TONE:沒(méi)有音標(biāo)
     */
    PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    /**
     * 特殊音符ü的設(shè)置
     * WITH_U_AND_COLON:用u表示(沒(méi)有設(shè)置默認(rèn)用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();
    //將字符串轉(zhuǎn)成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進(jìn)行轉(zhuǎn)換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
          result.append(pinyinStr[0].charAt(0));//取每個(gè)中文的第一個(gè)拼音字母
        }else {
          result.append(c);
        }
      }
    } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
      badHanyuPinyinOutputFormatCombination.printStackTrace();
    }
    return result.toString();
  }

  /**
   * 漢字轉(zhuǎn)拼音小寫
   * @param chinese
   * @return
   */
  public static String toPinYin(String chinese){
    //創(chuàng)建返回對(duì)象
    StringBuilder result = new StringBuilder();//方法調(diào)用的時(shí)候新建,對(duì)象沒(méi)有共享,不會(huì)有線程安全問(wèn)題。
    //將字符串轉(zhuǎn)成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進(jìn)行轉(zhuǎn)換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//          result.append(pinyinStr[0].charAt(0));//取每個(gè)中文的第一個(gè)拼音字母
          result.append(pinyinStr[0]);
        }else {
          result.append(c);
        }
      }
    } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
      badHanyuPinyinOutputFormatCombination.printStackTrace();
    }
    return result.toString();
  }
  /**
   * 漢字轉(zhuǎn)拼音每個(gè)字符串的第一個(gè)字母大寫其余小寫
   * @param chinese
   * @return
   */
  public static String toUpperStringsFirstCharPinYin(String chinese){
    //創(chuàng)建返回對(duì)象
    StringBuilder result = new StringBuilder();//方法調(diào)用的時(shí)候新建,對(duì)象沒(méi)有共享,不會(huì)有線程安全問(wèn)題。
    //將字符串轉(zhuǎn)成字符數(shù)組
    char[] chars = chinese.toCharArray();
    try {
      for (char c : chars) {
        //是中文則進(jìn)行轉(zhuǎn)換
        if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
          String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//          result.append(pinyinStr[0].charAt(0));//取每個(gè)中文的第一個(gè)拼音字母
          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) {
    //測(cè)試StringBuilder是否有線程安全問(wèn)題
    String str = "拼音工具lv";
    String pinYin = toUpperStringsFirstCharPinYin(str);
    System.out.println(pinYin);
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

    一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

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

    Java中JSONObject與JSONArray的使用示例小結(jié)

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

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

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

    Java中Future接口詳解

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

    Java中的DelayQueue源碼解析

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

    spring-spring容器中bean知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于spring-spring容器中bean知識(shí)點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • 介紹Jersey-Jersey入門基礎(chǔ)

    介紹Jersey-Jersey入門基礎(chǔ)

    REST不是一種新的技術(shù),而僅僅是一個(gè)理論,實(shí)踐這樣的理論可以讓我們的應(yīng)用更加先進(jìn)。
    2013-02-02
  • SpringAOP中的通知Advice詳解

    SpringAOP中的通知Advice詳解

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

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

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

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

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

最新評(píng)論