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

Java獲取漢字對應(yīng)的拼音(全拼或首字母)

 更新時間:2017年01月16日 11:26:25   作者:崴腳步花鹽人  
這篇文章主要介紹了Java如何獲取漢字對應(yīng)的拼音(全拼或首字母),文中實現(xiàn)的方法是引用了pinyin4j-2.5.0.jar,然后給出了完整的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。

Java 根據(jù)漢語字符串獲得對應(yīng)的拼音字符串或者拼音首字母字符串等操作,需要添加jar包:

引入pinyin4j-2.5.0.jar

代碼實現(xiàn):

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 /***
 * 漢字工具類
 * @author csharper
 * @since 2014.12.26
 *
 */
public class ChineseCharacterUtil {
 /***
 * 將漢字轉(zhuǎn)成拼音(取首字母或全拼)
 * @param hanzi
 * @param full 是否全拼
 * @return
 */
 public static String convertHanzi2Pinyin(String hanzi,boolean full)
 {
 /***
 * ^[\u2E80-\u9FFF]+$ 匹配所有東亞區(qū)的語言 
 * ^[\u4E00-\u9FFF]+$ 匹配簡體和繁體 
 * ^[\u4E00-\u9FA5]+$ 匹配簡體
 */
 String regExp="^[\u4E00-\u9FFF]+$";
 StringBuffer sb=new StringBuffer();
 if(hanzi==null||"".equals(hanzi.trim()))
 {
 return "";
 }
 String pinyin="";
 for(int i=0;i<hanzi.length();i++)
 {
 char unit=hanzi.charAt(i);
 if(match(String.valueOf(unit),regExp))//是漢字,則轉(zhuǎn)拼音
 {
 pinyin=convertSingleHanzi2Pinyin(unit);
 if(full)
 {
  sb.append(pinyin);
 }
 else
 {
  sb.append(pinyin.charAt(0));
 }
 }
 else
 {
 sb.append(unit);
 }
 }
 return sb.toString();
 }
 /***
 * 將單個漢字轉(zhuǎn)成拼音
 * @param hanzi
 * @return
 */
 private static String convertSingleHanzi2Pinyin(char hanzi)
 {
 HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
 outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
 String[] res;
 StringBuffer sb=new StringBuffer();
 try {
 res = PinyinHelper.toHanyuPinyinStringArray(hanzi,outputFormat);
 sb.append(res[0]);//對于多音字,只用第一個拼音
 } catch (Exception e) {
 e.printStackTrace();
 return "";
 }
 return sb.toString();
 }
 
 /***
 * @param str 源字符串
 * @param regex 正則表達式
 * @return 是否匹配
 */
 public static boolean match(String str,String regex)
 {
 Pattern pattern=Pattern.compile(regex);
 Matcher matcher=pattern.matcher(str);
 return matcher.find();
 }

 public static void main(String[] args) {
 System.out.println(convertHanzi2Pinyin("我是中國人123abc",true));
 }
}

運行結(jié)果:

(1)全拼:

woshizhongguoren123abc

(2)首字母:

wszgr123abc

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • Java使用正則獲取括號里面的內(nèi)容

    Java使用正則獲取括號里面的內(nèi)容

    這篇文章主要介紹了Java使用正則獲取括號里面的內(nèi)容問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Spring自定義注解的實現(xiàn)與使用方式

    Spring自定義注解的實現(xiàn)與使用方式

    注解是Java中用于類、方法、參數(shù)、包的裝飾標(biāo)志,本身不具備功能,但可定義參數(shù),Java包含內(nèi)建注解和元注解,如@Target、@Retention等,描述注解的使用范圍和生命周期,Spring的AOP(面向切面編程)可以結(jié)合注解實現(xiàn)功能,如權(quán)限控制和日志記錄
    2024-09-09
  • Spring Boot RabbitMQ 延遲消息實現(xiàn)完整版示例

    Spring Boot RabbitMQ 延遲消息實現(xiàn)完整版示例

    本篇文章主要介紹了Spring Boot RabbitMQ 延遲消息實現(xiàn)完整版示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java關(guān)于JDK1.8中的Optional類

    Java關(guān)于JDK1.8中的Optional類

    本文主要介紹了Optional類的一些常用方法,以及其應(yīng)用場景,其主要是為了規(guī)避空指針異常(NPE)。熟練的運用Optional類可以很大的簡化我們的代碼,使代碼簡潔明了。,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Java多線程實現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信)

    Java多線程實現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信)

    這篇文章主要介紹了Java多線程實現(xiàn)TCP網(wǎng)絡(luò)Socket編程(C/S通信),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java對象簡單實用案例之計算器實現(xiàn)代碼

    Java對象簡單實用案例之計算器實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Java對象簡單實用案例之計算器實現(xiàn)代碼
    2016-11-11
  • Mybatis-plus更新字段update_by失敗問題

    Mybatis-plus更新字段update_by失敗問題

    在遇到實體類字段更新不正確的問題時,首先復(fù)現(xiàn)問題,確定受影響的字段,使用Debug模式查看變量的實際賦值情況,通過查看執(zhí)行的SQL語句,確認(rèn)SQL是否正確反映了預(yù)期的更新,如出現(xiàn)問題,可以參考Mybatis-plus官網(wǎng)的解決方案
    2024-09-09
  • Java多線程及線程安全實現(xiàn)方法解析

    Java多線程及線程安全實現(xiàn)方法解析

    這篇文章主要介紹了Java多線程及線程安全實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • SpringCloudGateway使用Skywalking時日志打印traceId解析

    SpringCloudGateway使用Skywalking時日志打印traceId解析

    這篇文章主要為大家介紹了SpringCloudGateway使用Skywalking時日志打印traceId解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • JAVA異常信息Exception?e及e的相關(guān)方法解讀

    JAVA異常信息Exception?e及e的相關(guān)方法解讀

    這篇文章主要介紹了JAVA異常信息Exception?e及e的相關(guān)方法解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論