Heim >Java >javaLernprogramm >Beispiel-Tutorial zur Verwendung von pinyin4j
java.util.HashSet importieren;
java.util.Set importieren;
net.sourceforge.pinyin4j.PinyinHelper importieren;
net.sourceforge.pinyin4j.format importieren. 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 PingYingChange {
/**
* Holen Sie sich den ersten Buchstaben der chinesischen Pinyin-Zeichenfolge, die englischen Zeichen bleiben unverändert
*
* @param chinese Chinesische Zeichenkette
* @return den ersten Buchstaben der chinesischen Pinyin
*/
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[i] > 128) {
try {
String[] _t = PinyinHelper.toHanyuPinyinStringArray (arr[i], defaultFormat);
if (_t != null) {
pybf.append(_t[0].charAt(0));
}
e.printStackTrace();
}
} else {
pybf.append(arr[i]);
}
}
return pybf.toString().replaceAll("\W", "").trim();
}
/**
* Pinyin der chinesischen Zeichenkette abrufen, die englischen Zeichen bleiben unverändert
*
* @param chinesische chinesische Zeichenkette
* @return chinesisches Pinyin
*/
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[i] > 128) {
try {
pybf.append(PinyinHelper.toHanyuPinyinStringArray( arr[i], defaultFormat)[0]);
} Catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr[i]);
}
}
return pybf.toString();
}
public static String cnToSpell(String chines) {
String pinyinName = "";
StringBuffer strbuf = new StringBuffer();
char[] nameChar = chines.toCharArray ();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < ; nameChar.length; i++) {
char name = quanbianban(nameChar[i]);
nameChar[i] = name;
if (128 < nameChar[i]) {
try {
strbuf.append(PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0));
} Catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
strbuf.append(nameChar[i]);
}
}
pinyinName = strbuf.toString();
return pinyinName;
}
public static char quanbianban(char quan) {
switch (quan) {
case '0':
return '0';
case '1':
return '1';
case '2':
return '2';
case '3':
return '3';
case '4':
return '4';
case '5':
return '5';
case '6':
return '6';
case '7':
return '7';
case '8':
return '8';
case '9':
return '9';
default:
return quan;
}
}
/**
* Zeichenfolgensatz-Konvertierungszeichenfolge (durch Kommas getrennt)
* @author wyh
* @param stringSet
* @return
*/
public static String makeStringByStringSet(Set
StringBuilder str = new StringBuilder();
int i =0;
for(String s : stringSet){
if(i == stringSet.size() - 1){
str.append(s);
str.append(s + ",");
}
}
return str.toString().toLowerCase();
/* *
* Pinyin-Set abrufen
* @author wyh
* @param src
* @return Set
public static Set
if(src!=null && !src.trim().equalsIgnoreCase("")){
char[ ] srcChar ;
srcChar=src.toCharArray();
//Hanyu Pinyin-Format-Ausgabeklasse
HanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
//Ausgabeeinstellungen, Groß-/Kleinschreibung, phonetische Symbole Methoden usw.
hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH _V); 🎜>String[] [] temp = new String[src.length()][]; for(int i=0;i
if(String.valueOf(c).matches("[\u4E00-\u9FA5]+")){
try {
temp[i] = PinyinHelper.toHanyuPinyinStringArray(srcChar[i], hanYuPinOutputFormat);
}catch(BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}else if (((int)c>=65 && (int)c<=90) || ((int)c>=97 && (int)c<=122)){
temp[i] = new String[ ]{String.valueOf(srcChar[i])};
}else{
temp[i] = new String[]{""}
}
String[] pingyinArray = Exchange(temp);
Set
return pinyinSet;
}
return null; public static String [] Exchange(String[][] strJaggedArray){
String[][] temp = DoExchange(strJaggedArray); ][] DoExchange(String[][] strJaggedArray){
int len = strJaggedArray.length;
if(len >= 2){ len1 = strJaggedArray[0].length; len2 = strJaggedArray[1].length;
int newlen = len1*len2;
String[] temp = new String[newlen];
for(int i=0 ;i
}
}
String[][] newArray = new String[len-1][]; {
newArray[i-1] = strJaggedArray[i] );
public static void main(String[] args) throws Exception {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
// GROSSBUCHSTABEN: Großbuchstaben (ZHONG)
// KLEINBUCHSTABEN: Kleinbuchstaben ( zhong)
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// WITHOUT_TONE: Keine phonetischen Symbole (zhong)
// WITH_TONE_NUMBER: 1-4 Zahlen stellen britische Symbole dar (zhong4)
// WITH_TONE_MARK: Phonetische Symbole direkt verwenden (muss WITH_U_UNICODE andernfalls Ausnahme) (zhòng)
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
// WITH_V: Verwenden Sie v, um ü (nv) darzustellen
// WITH_U_AND_COLON: Verwenden Sie „u:“, um ü (nu:) darzustellen
// WITH_U_UNICODE: Verwenden Sie ü direkt (nü)
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
String[] pinyin = PinyinHelper .toHanyuPinyinStringArray( 'heavy', format);
System.out.println(PinyinHelper.toHanyuPinyinStringArray('heavy', format)[1]);
System.out.println(PingYingChange.cnToSpell("Zhenjiang abc ")) ;
System.out.println(PingYingChange.quanbianban('o'));
String x = "囧Wer hat gesagt, dass schlechte Schüler kommen, um Videos zu senden?";
System.out.println ( cn2FirstSpell(x));
System.out.println(cn2Spell(x));
String str = "Shan Tianfang"
System.out.println(getPinyin(str))) ;
System.out.println("");
}
}
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zur Verwendung von pinyin4j. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!