黑马程序员技术交流社区
标题: 【成都校区】Java中文转拼音、汉字转拼音 [打印本页]
作者: 小刀葛小伦 时间: 2019-12-4 13:48
标题: 【成都校区】Java中文转拼音、汉字转拼音
需要jar包
[XML] 纯文本查看 复制代码
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
第一个 : 汉字转拼音全拼不忽略英文字符
[Java] 纯文本查看 复制代码
/**
* (全拼)中文转拼音 --->不忽略英文字符
* @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 > 128) {
try {
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr, defaultFormat)[0]);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr);
}
}
return pybf.toString();
}
第二个 : 汉字转拼音首字母不忽略英文字符
[Java] 纯文本查看 复制代码
/**
* (首字母)汉字转拼音--->不忽略英文字符
* @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 > 128) {
try {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr, defaultFormat);
if (temp != null) {
pybf.append(temp[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr);
}
}
return pybf.toString().replaceAll("\\W", "").trim();
}
第三个 : 汉字转拼音全拼忽略英文字符
[Java] 纯文本查看 复制代码
/**
* (全拼)中文转拼音自动--->忽略英文字符
* @param inputString
* @return
*/
public static String getFullSpell_WithoutEnglish(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++) {
System.err.println(input);
if (java.lang.Character.toString(input).matches("[\\u4E00-\\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input, format);
output += temp[0];
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return output;
}
第四个 : 汉字转拼音首字母忽略英文字符
[Java] 纯文本查看 复制代码
/**
* (首字母)汉字转拼音--->忽略英文字符
* @param chinese
* @return
*/
public static String getFirstSpell_WithoutEnglish(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[] temp = PinyinHelper.toHanyuPinyinStringArray(arr, defaultFormat);
if (temp != null) {
pybf.append(temp[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}
}
return pybf.toString().replaceAll("\\W", "").trim();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |