Maison >Java >javaDidacticiel >Exemple de tutoriel d'utilisation de pinyin4j
importer java.util.HashSet;
importer java.util.Set;
importer net.sourceforge.pinyin4j.PinyinHelper;
importer net.sourceforge.pinyin4j.format. HanyuPinyinCaseType ; sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
public class PingYingChange {
/**
*
* @param Chinese Chaîne de caractères chinois
* @renvoie la première lettre du pinyin chinois
*/
public static String cn2FirstSpell(String chinois) {
StringBuffer pybf = nouveau StringBuffer();
char[] arr = chinois.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); < String[] _t = PinyinHelper.toHanyuPinyinStringArray (arr[i], format par défaut);
if (_t != null) {
pybf.append(_t[0].charAt(0));
}
e.printStackTrace();
}
pybf.append(arr[i]);
}
}
return pybf.toString().replaceAll("\W", "").trim();
}
/**
* Récupère le pinyin de la chaîne de caractères chinois, les caractères anglais restent inchangés
*
* @param Chinese Chaîne de caractères chinois
* @return Chinese pinyin
*/
public static String cn2Spell(String chinois) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinois.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); < pybf.append(PinyinHelper.toHanyuPinyinStringArray( arr[i], defaultFormat)[0]); <
}
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);
char name = quanbianban(nameChar[i]);
nameChar[i] = name;
if (128 < nameChar[i]) {
essayer {
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) {
return '0';
renvoie '1' ;
renvoie '2';
retourner '3';
retourner '4';
retourner '5';
renvoie '6';
renvoie '7';
renvoie '8';
renvoie '9' ;
renvoie quan ;
}
}
/**
* Chaîne de conversion de jeu de chaînes (séparées par des virgules)
* @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);
}else{
str.append(s + ",");
}
i++;
}
return str.toString().toLowerCase(); *
* Obtenez le jeu Pinyin
* @author wyh
* @param src
* @return Set
public static Set
if(src!=null && !src.trim().equalsIgnoreCase("")){
char[ ] srcChar ;
srcChar=src.toCharArray();
//Classe de sortie au format Hanyu Pinyin
HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
//Paramètres de sortie, casse, symboles phonétiques Méthodes, etc. 🎜> Chaîne[] [] temp = new String[src.length()][];
for(int i=0;i
if(String.valueOf(c).matches("[\u4E00-\u9FA5]+")){
essayez {
temp[i] = PinyinHelper.toHanyuPinyinStringArray(srcChar[i], hanYuPinOutputFormat);
}catch(BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace(); }sinon 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);
return temp[0]; 🎝>*/
private static String[ ][] DoExchange(String[][] strJaggedArray){
int len = strJaggedArray.length
if(len >= 2){ len1 = strJaggedArray[0].length
int; len2 = strJaggedArray[1].length;
int newlen = len1*len2;
String[] temp = new String[newlen]; ;i
Index ++;
}
}
String[][] newArray = new String[len-1][]; {
newArray[i-1] = strJaggedArray[i];
}else{
return strJaggedArray;
public static void main(String[] args) throws Exception {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
// MAJUSCULE : majuscule (ZHONG)
// MINUSCULE : minuscule ( zhong)
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// SANS_TONE : aucun symbole phonétique (zhong)
// WITH_TONE_NUMBER : 1 à 4 chiffres représentent des symboles britanniques (zhong4)
/ / WITH_TONE_MARK : utiliser des symboles phonétiques directement (doit WITH_U_UNICODE sinon exception) (zhòng)
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK
// WITH_V : utiliser v pour représenter ü (nv)
// WITH_U_AND_COLON : utilisez "u:" pour représenter ü (nu:)
// WITH_U_UNICODE : utilisez ü directement (nü)
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
String[] pinyin = PinyinHelper); .toHanyuPinyinStringArray( 'lourd', format);
System.out.println(PinyinHelper.toHanyuPinyinStringArray('lourd', format)[1]);
System.out.println(PingYingChange.cnToSpell("Zhenjiang abc) ")) ;
System.out.println(PingYingChange.quanbianban('o'));
String x = "囧Qui a dit que les mauvais élèves venaient envoyer des vidéos ?";
System.out.println ( cn2FirstSpell(x));
System.out.println(cn2Spell(x));
String str = "Shan Tianfang"
System.out.println(makeStringByStringSet(getPinyin(str))) ;
System.out.println("");
}
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!