package com.app.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.exception.BadHanyuPinyinOutputFormatCombination;
/**
* @ClassName: ChineseToPinYinUtil
* @Description:TODO(中文转化成拼音工具类)
* @author: wd
* @date: 2019年12月9日 下午5:10:52
*/
public class ChineseToPinYinUtil {
public static void main(String[] args) {
// 中文字符串首字母大写
System.out.println("东哥(中文字符串首字母大写):" + toFirstCharUpCase("东哥"));
// 中文字符串首字母小写
System.out.println("东哥(中文字符串首字母小写):" + toFirstCharLowCase("东哥"));
// 中文字符串拼音大写
System.out.println("东哥(中文字符串拼音大写):" + toPinyinUpCase("东哥"));
// 中文字符串拼音小写
System.out.println("东哥(中文字符串拼音小写):" + toPinyinLowCase("东哥"));
}
/**
* 获取中文字符串相应的拼音首字母小写
*/
public static String toFirstCharLowCase(String chinese) {
if (null == chinese) {
return null;
}
String pinyinStr = "";
// 将字符串转为字符数组
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 设置小写
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
/**
* 获取中文字符串相应的拼音首字母大写
*/
public static String toFirstCharUpCase(String chinese) {
if (null == chinese) {
return null;
}
String pinyinStr = "";
// 将字符串转为字符数组
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 设置大写
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0].charAt(0);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
/**
* 将中文字符串转换成拼音小写
*/
public static String toPinyinLowCase(String chinese) {
if (null == chinese) {
return null;
}
String pinyinStr = "";
// 将字符串转为字符数组
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 设置小写
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
/**
* 将中文字符串转换成拼音大写
*/
public static String toPinyinUpCase(String chinese) {
if (null == chinese) {
return null;
}
String pinyinStr = "";
// 将字符串转为字符数组
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 设置大写
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
}