การคัดลอกรหัสมีดังนี้:
นำเข้า 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
* @return String
-
สตริงคงที่สาธารณะ getPinyin (สตริง src) {
ถ่าน [] t1 = null;
t1 = src.tochararray ();
// system.out.println (t1.length);
สตริง [] t2 = สตริงใหม่ [t1.length];
// system.out.println (t2.length);
// ตั้งค่ารูปแบบของเอาต์พุตพินอินอักขระจีน
hanyupinyinoutputformat t3 = ใหม่ 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
* @return String
-
สตริงคงที่สาธารณะ getPinyInHeadchar (String str) {
สตริงแปลง = "";
สำหรับ (int j = 0; j <str.length (); j ++) {
Char word = str.charat (j);
// แยกตัวอักษรตัวแรกของตัวอักษรจีน
สตริง [] pinyinarray = pinyinhelper.tohanyupinyinstringarray (Word);
if (pinyinarray! = null) {
แปลง += pinyinarray [0] .charat (0);
} อื่น {
แปลง += คำ;
-
-
กลับมาแปลง;
-
-
* แปลงสตริงเป็นรหัส ASCII
-
* @param cnstr
* @return String
-
สตริงคงที่สาธารณะ getcnascii (สตริง cnstr) {
StringBuffer strBuf = new StringBuffer ();
// แปลงสตริงเป็นลำดับไบต์
ไบต์ [] 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));
-
return strbuf.toString ();
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
สตริง cnstr = "จีน";
System.out.println (getpinyin (cnstr));
System.out.println (getpinyinheadchar (cnstr));
System.out.println (getcnascii (cnstr));
-
-