RMBConverter2 คลาสสาธารณะใช้ IRMBConverter {
สตริงสุดท้ายคงที่ส่วนตัว [] RMB_NUMBER ={"ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "五", "鲁", "七", "八", "九"};
สตริงสุดท้ายคงที่ส่วนตัว [] RMB_ATTR = {"元", "十", "百", "千", "万", "十", "百", "千", "100 ล้าน", "十", " "ร้อย", "เฉียน", "ว่าน", "สิบ", "ร้อย", "เฉียน"};
สตริงสุดท้ายคงที่ส่วนตัว [] RMB_FEN = {"นาที", "มุม"};
@แทนที่
สตริงสาธารณะ change2RMB (นับสองครั้ง) {
StringBuffer rsBuf = ใหม่ StringBuffer();
ถ้า (นับ == 0L) {
กลับ "ศูนย์";
-
ถ้า (นับ < 0)
rsBuf.append("เชิงลบ");
สตริง zheng = strConverse(String.valueOf((long)counts));
String xiao = strConverse(String.valueOf(Math.round((counts - (long)counts)*100)));
ถ่าน [] zhengArray = zheng.toCharArray();
ถ่าน [] xiaoArray = xiao.toCharArray();
int zLength = zhengArray.length;
int xLength = xiaoArray.length;
รายการ<สตริง> zhengList = ใหม่ ArrayList<String>();
สำหรับ (int i =0; i< zLength; i++) {
ค่า int = Integer.parseInt(""+zhengArray[i]);
ถ้า (ค่า == 0 && (i != 4) && (i != 8) && ฉัน != 0) {
zhengList.add(RMB_NUMBER[ค่า]);
}อื่น {
zhengList.add(RMB_NUMBER[ค่า]+
RMB_ATTR[i]);
-
-
สำหรับ (int i = zhengList.size()-1; i>=0; i--) {
rsBuf.append(zhengList.get(i));
-
สำหรับ (int i =0; i<xLength ;i++) {
ค่า int = Integer.parseInt(""+xiaoArray[i]);
ถ้า (ค่า > 0 ) {
rsBuf.ผนวก(RMB_NUMBER[ค่า])
.ผนวก(RMB_FEN[xLength-i-1]);
-
-
สตริง rs = rsBuf.toString();
฿ = rs.replaceAll("ศูนย์+", "ศูนย์");
rs = rs.replaceAll("ศูนย์หยวน", "หยวน");
฿ = rs.replaceAll("00,000", "10,000");
rs = rs.replaceAll("000 ล้าน", "100 ล้าน");
rs = rs.replaceAll("พันล้าน", "พันล้าน");
กลับอาร์เอส;
-
สตริงส่วนตัว strConverse (สตริง str) {
StringBuffer rs = StringBuffer ใหม่ ();
ถ่าน [] strArray = str.toCharArray();
สำหรับ(int i = str.length()-1; i>=0; i--) {
rs.ผนวก(strArray[i]);
-
กลับ rs.toString();
-
โมฆะคงสาธารณะหลัก (String args []) {
RMBConverter2 c2 = RMBConverter2 ใหม่();
System.out.println(c2.change2RMB(2001004.10));
System.out.println(c2.change2RMB(2000000.10));
System.out.println(c2.change2RMB(0L));
System.out.println(c2.change2RMB(1121000010000000L));
-
-