使用pinyin4j獲取漢字的首字母

pom文件中引入pinyin4j包

        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.0</version>
        </dependency>

使用導入的包,調用方法進行漢字的首字母獲取

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;

public static String getFirstPinYin(String hanyu) {
	HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
	format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
	format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

	StringBuilder firstPinyin = new StringBuilder();
	char[] hanyuArr = hanyu.trim().toCharArray();
	try {
		for (int i = 0, len = hanyuArr.length; i < len; i++) {
			if(Character.toString(hanyuArr[i]).matches("[\\u4E00-\\u9FA5]+")){
				String[] pys = PinyinHelper.toHanyuPinyinStringArray(hanyuArr[i],format);
				firstPinyin.append(pys[0].charAt(0));
			}else {
				firstPinyin.append(hanyuArr[i]);
			}
		}
	} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
		badHanyuPinyinOutputFormatCombination.printStackTrace();
	}
	return firstPinyin.toString();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章