java通讯录获取汉字首字母
1.本文只是使用了pinyin4J的主要功能,还有更多更好耍的功能,大家可以去研究官网文档。哈哈
2.pinyin4j的官方下载地址:https://sourceforge.net/projects/pinyin4j/files/
3.我们这里使用的版本是 pinyin4j 2.5.0
-
-
package com.zr.util;
-
-
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;
-
-
/**
-
* 拼音工具类
-
*
-
* @author lsf
-
*/
-
public class PinYinUtil {
-
/**
-
* 将字符串中的中文转化为拼音,其他字符不变
-
*
-
* @param inputString
-
* @return
-
*/
-
public static String getPingYin(String inputString) {
-
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
-
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-
format.setVCharType(HanyuPinyinVCharType.WITH_V);
-
-
char[] input = inputString.trim().toCharArray();
-
String output = "";
-
-
try {
-
for (int i = 0; i < input.length; i++) {
-
if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
-
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
-
output += temp[0];
-
} else
-
output += java.lang.Character.toString(input[i]);
-
}
-
} catch (BadHanyuPinyinOutputFormatCombination e) {
-
e.printStackTrace();
-
}
-
return output;
-
}
-
/**
-
* 获取汉字串拼音首字母,英文字符不变
-
* @param chinese 汉字串
-
* @return 汉语拼音首字母
-
*/
-
public static String getFirstSpell(String chinese) {
-
StringBuffer pybf = new StringBuffer();
-
char[] arr = chinese.toCharArray();
-
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
-
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-
for (int i = 0; i < arr.length; i++) {
-
if (arr[i] > 128) {
-
try {
-
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
-
if (temp != null) {
-
pybf.append(temp[0].charAt(0));
-
}
-
} catch (BadHanyuPinyinOutputFormatCombination e) {
-
e.printStackTrace();
-
}
-
} else {
-
pybf.append(arr[i]);
-
}
-
}
-
return pybf.toString().replaceAll("\\W", "").trim();
-
}
-
/**
-
* 获取汉字串拼音,英文字符不变
-
* @param chinese 汉字串
-
* @return 汉语拼音
-
*/
-
public static String getFullSpell(String chinese) {
-
StringBuffer pybf = new StringBuffer();
-
char[] arr = chinese.toCharArray();
-
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
-
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-
for (int i = 0; i < arr.length; i++) {
-
if (arr[i] > 128) {
-
try {
-
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
-
} catch (BadHanyuPinyinOutputFormatCombination e) {
-
e.printStackTrace();
-
}
-
} else {
-
pybf.append(arr[i]);
-
}
-
}
-
return pybf.toString();
-
}
-
}
-
-
添加好工具类后,在程序中调用:
-
//要获取的字段
-
String szm = PinYinUtil.getFirstSpell(String string);
-
//截取第一位
-
String yis = szm.substring(0, 1);
-
//输出结果并且把获取到的字母转换成大写
-
System.out.println(yis.toUpperCase());
梅花香自古寒来