Pinyin4j is a popular Java library supporting convertion between Chinese characters and most popular Pinyin systems. The output format of pinyin could be customized.
Since the software, pinyin4j published till today, it has been downloaded by 55,000 times and still couting 200+ every week!
Pinyin4j是一个流行的Java库,支持汉字和最流行的拼音系统之间的转换。 拼音的输出格式可以自定义。
自从软件pinyin4j发布到今天,已经被下载了5.5万次,每周还要200多个!
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
String[] pinyinArray =PinyinHelper.toHanyuPinyinStringArray('单');
for(int i = 0; i < pinyinArray.length; ++i)
{
System.out.println(pinyinArray);
}
}HanyuPinyinOutputFormat format= new HanyuPinyinOutputFormat();
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
String[] pinyinArray = null;
try
{
pinyinArray = PinyinHelper.toHanyuPinyinStringArray('黄', format);
}
catch(BadHanyuPinyinOutputFormatCombination e)
{
e.printStackTrace();
}
for(int i = 0; i < pinyinArray.length; ++i)
{
System.out.println(pinyinArray);
}
public class PinYinUtil {
/**
* 获取汉字串拼音首字母,英文字符不变
*
* @param chinese 汉字串
* @return 汉语拼音首字母
*/
public static String cn2FirstSpell(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 > 128) {
try {
String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr, defaultFormat);
if (_t != null) {
pybf.append(_t[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr);
}
}
return pybf.toString().replaceAll("\\W", "").trim();
}
/**
* 获取汉字串拼音,英文字符不变
*
* @param chinese 汉字串
* @return 汉语拼音
*/
public static String cn2Spell(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 > 128) {
try {
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr, defaultFormat)[0]);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr);
}
}
return pybf.toString();
}
} public static void main(String[] args) {
System.out.println("获取首字母方法-->cn2FirstSpell:"+PinYinUtil.cn2FirstSpell("黑马程序员"));
System.out.println("获取首字母方法-->cn2Spell:"+PinYinUtil.cn2Spell("黑马程序员"));
}| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |