نسخة الكود كما يلي:
استيراد net.sourceforge.pinyin4j.pinyinhelper ؛
استيراد net.sourceforge.pinyin4j.format.hanyupinyincasetype ؛
استيراد net.sourceforge.pinyin4j.format.hanyupinyinoutputformat ؛
استيراد net.sourceforge.pinyin4j.format.hanyupinyIntoneType ؛
استيراد net.sourceforge.pinyin4j.format.hanyupinyinvchartype ؛
استيراد net.sourceforge.pinyin4j.format.exception.badhanyupinyinoutputformatcombination ؛
الطبقة العامة pinyin4jutil {
/**
* تحويل الأحرف الصينية إلى تهجئة كاملة
*
* param src
* @سلسلة العودة
*/
السلسلة الثابتة العامة getPinyin (سلسلة SRC) {
char [] t1 = null ؛
t1 = src.tochararray () ؛
// system.out.println (t1.length) ؛
String [] t2 = سلسلة جديدة [t1.length] ؛
// system.out.println (t2.length) ؛
// قم بتعيين تنسيق إخراج Pinyin الصيني
hanyupinyinoutputformat t3 = new hanyupinyinoutputformat () ؛
T3.setCaseType (HanyupinyinCaseType.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 (character.toString (t1 [i]). تطابقات ("[// u4e00-// u9fa5]+")) {
t2 = pinyinhelper.tohanyupinyinstringarray (t1 [i] ، t3) ؛ // حفظ جميع تهجئة الشخصيات الصينية في مجموعة T2
T4 += T2 [0] ؛ // بعد إخراج النطق الأول للشخصية الصينية وتوصيله بالسلسلة T4
} آخر {
// إذا لم تكن حرفًا صينيًا ، فبعد استخراج الحرف بشكل غير مباشر وتوصيله بالسلسلة T4
T4 += character.toString (T1 [i]) ؛
}
}
} catch (badhanyupinyinoutputformatcombination e) {
E.PrintStackTrace () ؛
}
إرجاع T4 ؛
}
/**
* استخراج الحرف الأول من كل حرف صيني
*
* param str
* @سلسلة العودة
*/
السلسلة الثابتة العامة getPinyinheadchar (String str) {
سلسلة تحويل = "" ؛
لـ (int j = 0 ؛ j <str.length () ؛ j ++) {
كلمة char = str.charat (j) ؛
// استخراج الحرف الأول من الأحرف الصينية
String [] pinyinarray = pinyinhelper.tohanyupinyIntringArray (Word) ؛
if (pinyinarray! = null) {
تحويل += pinyinarray [0] .charat (0) ؛
} آخر {
تحويل += كلمة ؛
}
}
تحويل العودة.
}
/**
* تحويل السلاسل إلى رمز ASCII
*
* param cnstr
* @سلسلة العودة
*/
السلسلة الثابتة العامة getCnascii (سلسلة 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 () ؛
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
سلسلة cnstr = "الصين" ؛
System.out.println (getPinyin (CNSTR)) ؛
System.out.println (getPinyinheadchar (CNSTR)) ؛
System.out.println (getCnascii (CNSTR)) ؛
}
}