0
点赞
收藏
分享

微信扫一扫

java 根据汉字生成拼音全拼或拼音首字母(助记码)

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 根据汉字生成拼音全拼或拼音首字母(助记码)_System

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

举报

相关推荐

0 条评论