Кода -копия выглядит следующим образом:
Импорт net.sourceforge.pinyin4j.pinyinHelper;
Import net.sourceforge.pinyin4j.format.hanyupinyincasasetype;
import net.sourceforge.pinyin4j.format.hanyupinyinoutputformat;
Import net.sourceforge.pinyin4j.format.hanyupinyintonetype;
Import net.sourceforge.pinyin4j.format.hanyupinyinvchartype;
import net.sourceforge.pinyin4j.format.exception.badhanyupinyinoutputformatcanciany;
открытый класс pinyin4jutil {
/**
* Преобразовать китайские иероглифы в полное правописание
*
* @param src
* @return String
*/
public Static String getPinyin (String src) {
char [] t1 = null;
t1 = src.tochararray ();
// System.out.println (t1.length);
String [] t2 = new String [t1.length];
// System.out.println (t2.length);
// Установить формат вывода китайского символа пиньина
Hanyupinyinoutputformat t3 = new hanyupinyinoutputformat ();
t3.setCaseType (hanyupinyincasasetype.lowercase);
t3.settonetype (hanyupinyintonetype.without_tone);
t3.setvChartype (hanyupinyinvchartype.with_v);
Строка t4 = "";
int t0 = t1.length;
пытаться {
для (int i = 0; i <t0; i ++) {
// определить, может ли это быть китайские иероглифы
// System.out.println (t1 [i]);
if (incarm.tostring (t1 [i]). Matches ("[// u4e00-// u9fa5]+")) {
t2 = pinyinhelper.tohanyupinyinstringarray (t1 [i], t3); // Сохранить все написания китайских иерог
T4 += T2 [0]; // после вынесения первого произношения китайского символа и подключения его к строке T4
} еще {
// Если это не китайский символ, то после косвенного извлечения символов и подключения его к строке T4
t4 += символ.toString (t1 [i]);
}
}
} catch (badhanyupinyinoutputformatcombination e) {
e.printstacktrace ();
}
вернуть T4;
}
/**
* Извлеките первую букву каждого китайского персонажа
*
* @param str
* @return String
*/
public Static String getpinyinheadchar (String Str) {
String convert = "";
for (int j = 0; j <str.length (); j ++) {
char word = str.charat (j);
// Извлеките первую букву китайских иероглифы
String [] pinyinarray = pinyinhelper.tohanyupinyinstringarray (word);
if (pinyinarray! = null) {
преобразовать += pinyinarray [0] .Charat (0);
} еще {
конвертировать += слово;
}
}
вернуть конверт;
}
/**
* Конвертировать строки в код ASCII
*
* @param cnstr
* @return String
*/
public Static String getCnascii (String cnstr) {
StringBuffer strbuf = new StringBuffer ();
// конвертируйте строки в последовательности байтов
byte [] bgbk = cnstr.getbytes ();
для (int i = 0; i <bgbk.length; i ++) {
// System.out.println (integer.tohexstring (bgbk [i] & 0xff));
// конвертировать каждый символ в код ASCII
strbuf.append (integer.tohexstring (bgbk [i] & 0xff));
}
вернуть strbuf.toString ();
}
public static void main (string [] args) {
String cnstr = "Китай";
System.out.println (getpinyin (cnstr));
System.out.println (getpinyinheadchar (cnstr));
System.out.println (getcnascii (cnstr));
}
}