java 根據(jù)漢字生成拼音全拼或拼音首字母的示例
1.情景展示
java 根據(jù)中文生成對應(yīng)的拼音
2.準(zhǔn)備工作
所需jar包:pinyin4j-2.5.0.jar
3.解決方案
導(dǎo)包
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;
代碼實現(xiàn)
/**
* 根據(jù)漢字生成拼音全拼或拼音首字母
* @explain
* @author Marydon
* @creationTime 2020年5月14日下午4:26:30
* @version 1.0
* @since
* @email marydon20170307@163.com
*/
public class GetPinyin {
/**
* 得到全拼
* @param str
* @return 全拼(小寫)
*/
public static String getPinYin(String str){
char t1[]=null;
t1=str.toCharArray();
String[] t2=new String[t1.length];
HanyuPinyinOutputFormat t3=new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4="";
int t0=t1.length;
try {
for ( int i = 0; i < t0; i++ ) {
//是用來判斷是不是中文的一個條件,采用的是unicode編碼
if(Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")){
t2= PinyinHelper.toHanyuPinyinStringArray(t1[i],t3);
t4+=t2[0];
}else {
t4+=Character.toString(t1[i]);
}
}
return t4;
} catch ( BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination ) {
badHanyuPinyinOutputFormatCombination.printStackTrace();
}
return t4;
}
/**
* 得到漢字首字母的拼音
* @param str
* @return 拼音首字母(大寫)
*/
public static String getPinYinHeaderChar(String str){
String convert="";
for ( int i = 0; i < str.length(); i++ ) {
char word=str.charAt(i);
String[] pinYinArray=PinyinHelper.toHanyuPinyinStringArray(word);
if ( pinYinArray!=null ){
convert+=pinYinArray[0].charAt(0);
}else {
convert+=word;
}
}
return convert.toUpperCase();
}
//測試
public static void main(String[] args) {
System.out.println(getPinYin("火影忍者M(jìn)arydon"));
System.out.println(getPinYinHeaderChar("海賊王"));
}
}
4.效果展示

以上就是java 根據(jù)漢字生成拼音全拼或拼音首字母的示例的詳細(xì)內(nèi)容,更多關(guān)于Java 漢字生成拼音的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springboot接收前端參數(shù)的四種方式圖文詳解
Spring Boot可以通過多種方式接收前端傳遞的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于springboot接收前端參數(shù)的四種方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
SpringBoot的DeferredResult案例:DeferredResult的超時處理方式
這篇文章主要介紹了SpringBoot的DeferredResult案例:DeferredResult的超時處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java Integer.valueOf()和Integer.parseInt()的區(qū)別說明
這篇文章主要介紹了Java Integer.valueOf()和Integer.parseInt()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Java中的Vector和ArrayList區(qū)別及比較
這篇文章主要介紹了Java中的Vector和ArrayList區(qū)別及比較,本文從API、同步、數(shù)據(jù)增長、使用模式4個方面總結(jié)了它們之間的不同之處,需要的朋友可以參考下2015-03-03
JPA?通過Specification如何實現(xiàn)復(fù)雜查詢
這篇文章主要介紹了JPA?通過Specification如何實現(xiàn)復(fù)雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
基于Spring Boot使用JpaRepository刪除數(shù)據(jù)時的注意事項
這篇文章主要介紹了Spring Boot使用JpaRepository刪除數(shù)據(jù)時的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
java打包成可執(zhí)行的jar或者exe的詳細(xì)步驟
Java程序完成以后,對于Windows操作系統(tǒng),習(xí)慣總是想雙擊某個exe文件就可以直接運(yùn)行程序,現(xiàn)我將一步一步的實現(xiàn)該過程.最終結(jié)果是:不用安裝JRE環(huán)境,不用安裝數(shù)據(jù)庫,直接雙擊一個exe文件,就可以運(yùn)行程序2014-04-04

