Rmb.java
public class Rmb { /** *ข้อมูลพื้นฐานและการดำเนินการของ RMB*@author weinee *@version 1.0 */ double number; //จำนวน RMB private String[] hanArr = {"zero", "一", "二" , "三", "四", "五", "鲁", "旒", "八", "九" };//สัญลักษณ์การนับตัวอักษรจีน private String[] unitArr = {"", "十", "百", "千"};//การนับตัวอักษรจีนหน่วยส่วนตัว String[] unitArrs = {"万", "Billion", "万", "十大", "万" , " "Billion", "Wan", "Yuan"}; //เพิ่มหน่วยตามลำดับ//private String[]unitsArr = {"Wan", "Billion"}; //หน่วยขนาดใหญ่สำหรับการนับตัวอักษรจีน public Rmb( ){} /** *Constructor เริ่มต้นจำนวน RMB*@param หมายเลข RMB สำหรับการเริ่มต้นที่กำหนด*/ Rmb สาธารณะ(หมายเลขคู่){ this.number = number; } /** *แยกตัวเลขทศนิยมออกเป็นส่วนยาวและสตริงส่วนทศนิยม The RMB ถูกแทนที่ด้วยจำนวนเต็ม มีข้อผิดพลาดในค่าวิกฤตของตัวเลขทศนิยมเมื่อรับส่วนทศนิยม*@return ส่งคืนอาร์เรย์สตริงที่แยกส่วนแรกคือส่วนจำนวนเต็ม และส่วนที่สองเป็นส่วนทศนิยม สตริง*/ สตริงสาธารณะ [] DivideNum(){ double num = Math.round(number*100);//จำนวนรอบเป็นจำนวนเต็ม long integerPart = (long)num; //นำทศนิยมสองตำแหน่งไปเป็นจำนวนเต็มเพื่อหลีกเลี่ยงการใช้การลบ //double decimalsPart = num -integerPart;// ส่วนทศนิยมเกิดข้อผิดพลาดเมื่อสตริงที่สำคัญ decimalsPartStr; b = ส่วนจำนวนเต็ม % 10; // ตัวเลขที่สองหลังจุดทศนิยมยาว a = (จำนวนเต็ม/10) % 10; // ตัวเลขตัวแรกหลังจุดทศนิยมจำนวนเต็ม /= 100; if(a==0 && b==0){ decimalsPartStr = null; }else{ decimalsPartStr = "" + a + b ; } return new String[] {String.valueOf(integerPart), decimalsPartStr}; } /** *แปลงอักขระตัวเลขเป็นการออกเสียงภาษาจีนหยวน*@return ส่งกลับรูปแบบสตริงของการออกเสียงภาษาจีนหยวน*/ สตริงสาธารณะเป็นHanStr(){ String[] results = new String[9]; //ใช้เพื่อจัดเก็บสตริงตัวเลขชั่วคราว String[] แบ่งออกเป็นสี่หลักทุกๆ สี่หลัก resultStrs = new String[9];//ใช้เพื่อจัดเก็บการอ่านค่า RMB ที่แปลงแล้วชั่วคราวหลังจากการแบ่งส่วนสี่หลักแต่ละครั้ง String result = "";//ผลลัพธ์การแปลงสุดท้าย String[]divideStr =divideNum(); // รับสตริงส่วนยาวและส่วนทศนิยมที่แยกย่อยเป็นจำนวนจุดลอยตัว องค์ประกอบอาร์เรย์แรกคือสตริงส่วนจำนวนเต็ม และส่วนที่สองคือผลลัพธ์สตริงส่วนทศนิยม[8] = DivideStr[1]; i =divideStr[0].length(), j=8; i>0&&j>0 ; i-=4,j--){ ลอง{ ผลลัพธ์[j-1] =divideStr[0].substring(i-4 , ฉัน); }catch(ข้อยกเว้น e){ ผลลัพธ์[j-1] =divideStr[0].substring(0, i); break; } } if(results[8] == null){ resultStrs[8] = "whole"; } อื่น if(results[8].charAt(1) == '0'){ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角"; //เปลี่ยนตัวเลขเป็นตัวพิมพ์ใหญ่ของจีนตามรหัส ASCII และ hanArr array}else{ resultStrs[8] = hanArr[results[8].charAt(0) - 48] + "角" + hanArr[ ผลลัพธ์[8].charAt(1) - 48] + "จุด"; } สำหรับ(int i=0; i<8; i++){ if(results[i] != null){ resultStrs[i] = ""; resultStrs[i] += hanArr[results[i].charAt(0) - 48] + unitArr[ผลลัพธ์[i].length() - 1]; //เลือกหน่วยตัวเลขตามรหัส ASCII และความยาวอาเรย์สำหรับ (int j=1; j<results[i].length(); j++ ) if(results[i].charAt(j-1) == '0' && ผลลัพธ์[i].charAt(j) != '0') resultStrs[i] += "zero" + hanArr[results[i] ].charAt(j) - 48] + unitArr[ผลลัพธ์[i].ความยาว() - 1 - j]; //เลือกหน่วยตัวเลขตามรหัส ASCII และความยาวของอาร์เรย์ มิฉะนั้น if(results[i].charAt(j) != '0' ) resultStrs[i] += hanArr[results[i].charAt(j) - 48] + unitArr[ผลลัพธ์[i].ความยาว() - 1 - j] } } สำหรับ (int i=0; i<8; i++ ){ if(resultStrs[i] != null){ result += resultStrs[i] + unitArrs[i]; } ผลลัพธ์ += resultStrs[8];RmbTest.java
RmbTest คลาสสาธารณะ { public static void main(String[] args) { double l; byte[] bye = new byte[50]; System.out.println("โปรดป้อนจำนวน RMB ที่จะแปลง:"); { System .in.read(bye); }catch(ข้อยกเว้น e){} String s = new String(l); l = Double.parseDouble(s); Rmb r = new Rmb(l); s = r.toHanStr(); System.out.println(s);ข้างต้นคือเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคนที่เรียน Java