失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 根据输入的中文得到拼音全拼和中文首字母

根据输入的中文得到拼音全拼和中文首字母

时间:2020-05-11 17:20:07

相关推荐

根据输入的中文得到拼音全拼和中文首字母

工具类----Java根据输入的中文获得中文的拼音全拼和首字母

首先需要引入.pinyin4j-2.5.0.jar 包

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;

第一个方法:根据输入的中文获得拼音。

/*** 得到全拼* @param src* @return*/public static String getPingYin(String src) {char[] t1 = null;t1 = src.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++) {// 判断是否为汉字字符if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);t4 += t2[0];} else {t4 += java.lang.Character.toString(t1[i]);}}return t4;} catch (BadHanyuPinyinOutputFormatCombination e1) {e1.printStackTrace();}return t4;}

第二种:获得拼音的首字母

/*** 得到中文首字母* * @param str* @return*/public static String getPinYinHeadChar(String str) {String convert = "";for (int j = 0; j < str.length(); j++) {char word = str.charAt(j);String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);if (pinyinArray != null) {convert += pinyinArray[0].charAt(0);} else {convert += word;}}return convert;}

两种方法都需要将字符串转移为ASCII码

方法如下:

/*** 将字符串转移为ASCII码* * @param cnStr* @return*/public static String getCnASCII(String cnStr) {StringBuffer strBuf = new StringBuffer();byte[] bGBK = cnStr.getBytes();for (int i = 0; i < bGBK.length; i++) {// System.out.println(Integer.toHexString(bGBK[i]&0xff));strBuf.append(Integer.toHexString(bGBK[i] & 0xff));}return strBuf.toString();}

最后:可以测试一下我们所做的方法

public static void main(String[] args) {

String cnStr = "测试拼音方法";

System.out.println("获得中文的全拼:=="+getPingYin(cnStr));

System.out.println(getPinYinHeadChar(cnStr));

}

如果觉得《根据输入的中文得到拼音全拼和中文首字母》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。