1.情景展示
java 根据中文生成对应的拼音
2.准备工作
所需jar包:pinyin4j-2.5.0.jar
3.解决方案
导包
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;代码实现
/*** 根据汉字生成拼音全拼或拼音首字母* @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("火影忍者Marydon"));System.out.println(getPinYinHeaderChar("海贼王"));}}4.效果展示
以上就是java 根据汉字生成拼音全拼或拼音首字母的示例的详细内容,更多关于Java 汉字生成拼音的资料请关注其它相关文章!