자바 한자 병 음 변환 (pinyin4j)
3729 단어 도구 클래스
com.belerweb
pinyin4j
2.5.1
자바 코드
package com.czx.demo;
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;
/**
*
*/
public class PingYinUtil {
/**
* ,
*
* @param inputString
* @return
*/
public static String getPingYin(String inputString, HanyuPinyinCaseType caseType) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(caseType);
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 (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
output += temp[0];
} else
output += Character.toString(input[i]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return output;
}
public static String getPingYinLowerCase(String chinese) {
return getPingYin(chinese, HanyuPinyinCaseType.LOWERCASE);
}
public static String getPingYinUpperCase(String chinese) {
return getPingYin(chinese, HanyuPinyinCaseType.UPPERCASE);
}
/**
* ,
*
* @param chinese
* @return
*/
public static String getFirstSpell(String chinese, HanyuPinyinCaseType caseType) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(caseType);
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();
}
public static String getFirstSpellLowerCase(String chinese) {
return getFirstSpell(chinese, HanyuPinyinCaseType.LOWERCASE);
}
public static String getFirstSpellUpperCase(String chinese) {
return getFirstSpell(chinese, HanyuPinyinCaseType.UPPERCASE);
}
public static void main(String[] args) {
String name = " ";
System.out.println(PingYinUtil.getFirstSpellLowerCase(name));
System.out.println(PingYinUtil.getFirstSpellUpperCase(name));
System.out.println(PingYinUtil.getPingYinLowerCase(name));
System.out.println(PingYinUtil.getPingYinUpperCase(name));
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 파일 읽 기 도구 클래스package com.lb.util; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; im...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.