การคัดลอกรหัสมีดังนี้:
นำเข้า java.util.hashmap;
นำเข้า java.util.map;
ชั้นเรียนสาธารณะ figureandchinese2util {
// แคชตัวเลขทั้งหมด
แผนที่คงที่ส่วนตัว <อักขระ, อักขระ> แผนที่ = ใหม่ hashmap <อักขระ, อักขระ> (
10);
คงที่ {
map.put ('1', '1');
map.put ('2', '2');
map.put ('3', 'สาม');
map.put ('4', 'si');
map.put ('5', 'wu');
map.put ('6', 'lu');
map.put ('7', 'qi');
map.put ('8', '8');
map.put ('9', '9');
map.put ('0', 'zero');
-
char char [] mode = char ใหม่ [] {'she', 'bai', 'Qian'};
โมฆะคงที่สาธารณะ m (สตริง sb) {
StringBuffer SBF = new StringBuffer ();
String [] sp = sb.split ("//.");
if (sp.length == 2) {
m0 (sp [0], 0, sbf);
sbf.append (m2 (sp [1]));
} อื่น
M0 (SB, 0, SBF);
sbf.append ("ทั้งหมด");
System.out.println (SBF);
-
-
* ตัดสตริง
-
* @param sb
-
โมฆะคงที่สาธารณะ M0 (สตริง SB, ประเภท int, StringBuffer SBF) {
int len = sb.length ();
int b = 0;
ประเภท ++;
ถ้า (len> = 4) {
b = len - 4;
sbf.insert (0, m1 (sb.substring (b), ประเภท));
m0 (sb.substring (0, b), ประเภท, sbf);
} อื่นถ้า (len> 0)
sbf.insert (0, m1 (sb, type));
if ('zero' == sbf.charat (0))
sbf.deletecharat (0);
-
-
* จัดการกับ
-
* @param sb
-
StringBuffer Public StringBuffer M1 (String SB, ประเภท int) {
StringBuffer SBF = ใหม่ StringBuffer (SB);
สวิตช์ (พิมพ์) {
กรณีที่ 1:
sbf.append ("วงกลม");
หยุดพัก;
กรณีที่ 2:
sbf.append ("หมื่น");
หยุดพัก;
กรณีที่ 3:
sbf.append ("中");
หยุดพัก;
ค่าเริ่มต้น:
หยุดพัก;
-
// เริ่มงานที่ได้รับมอบหมาย
int b = 0;
ถ่าน t = 0;
สำหรับ (int i = sbf.length ()-2; i> = 0; i--) {
t = sbf.charat (i);
sbf.setcharat (i, map.get (t));
ถ้า (i! = 0)
sbf.insert (i, โหมด [b]);
B ++;
-
สำหรับ (int i = 0; i <sbf.length (); i ++) {
t = sbf.charat (i);
if (t == 'zero') {
t = sbf.charat (i + 1);
if ('circle'! = t && 'ล้าน'! = t && 'ล้าน'! = t)
sbf.deletecharat (i + 1);
อื่น
sbf.deletecharat (i);
ถ้า (i! = 0)
if (sbf.charat (i - 1) == 'zero') {
sbf.deletecharat (i - 1);
ฉัน--;
-
-
-
if (sbf.length () == 1) {
if ('circle'! = sbf.charat (0))
sbf.setLength (0);
-
คืน SBF;
-
Stringbuffer สาธารณะคงที่ M2 (String de) {
ถ้า (de.length ()> 2)
de = de.substring (0, 2);
de = de.replacefirst ("00", "");
StringBuffer SB = ใหม่ StringBuffer (DE);
if (sb.length ()> 0) {
if (sb.charat (sb.length () - 1) == '0')
sb.deletecharat (sb.length () - 1);
sb.setcharat (0, map.get (sb.charat (0)));
สวิตช์ (sb.length ()) {
กรณีที่ 1:
sb.append ("มุม");
หยุดพัก;
กรณีที่ 2:
sb.setcharat (1, map.get (sb.charat (1)));
if (sb.charat (0)! = 'zero')
sb.insert (1, 'มุม');
sb.append ("คะแนน");
หยุดพัก;
ค่าเริ่มต้น:
หยุดพัก;
-
-
กลับ SB;
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
สตริง s = "44444444441.23";
สตริง s1 = "1";
String S2 = "1000000000.01";
String S3 = "101010002.11";
m;
M (S1);
M (S2);
M (S3);
-
-