La copie de code est la suivante:
import java.util.hashmap;
importation java.util.map;
classe publique Figureandchinese2util {
// Cache tous les nombres
Carte statique privée <caractère, caractère> map = new hashmap <caractère, caractère> (
10);
statique {
map.put ('1', '1');
map.put ('2', '2');
map.put ('3', 'trois');
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', 'zéro');
}
statique char [] mode = new char [] {'elle', 'bai', 'qian'};
public statique void m (String sb) {
StringBuffer sbf = new StringBuffer ();
String [] sp = sb.split ("//.");
if (sp.length == 2) {
m0 (sp [0], 0, sbf);
SBF.APPEND (M2 (SP [1]));
} autre
M0 (SB, 0, SBF);
SBF.APPEND ("Whole");
System.out.println (SBF);
}
/ ***
* Coupez la corde
*
* @param sb
* /
public static void m0 (String sb, int type, stringbuffer sbf) {
int len = sb.length ();
int b = 0;
type ++;
if (len> = 4) {
b = len - 4;
sbf.insert (0, m1 (SB.Substring (b), type));
M0 (SB.SubString (0, B), type, SBF);
} else if (len> 0)
sbf.insert (0, m1 (sb, type));
if ('zéro' == sbf.charat (0))
sbf.deletecharat (0);
}
/ ***
* traiter avec
*
* @param sb
* /
public static stringbuffer m1 (String sb, int type) {
StringBuffer sbf = new StringBuffer (SB);
commutateur (type) {
Cas 1:
SBF.APPEND ("Circle");
casser;
Cas 2:
sbf.append ("dix mille");
casser;
Cas 3:
SBF.APPEND ("中");
casser;
défaut:
casser;
}
// Démarrer l'affectation
int b = 0;
char t = 0;
for (int i = sbf.length () - 2; i> = 0; i--) {
t = sbf.charat (i);
SBF.Setcharat (i, map.get (t));
si (i! = 0)
sbf.insert (i, mode [b]);
b ++;
}
pour (int i = 0; i <sbf.length (); i ++) {
t = sbf.charat (i);
if (t == 'zéro') {
t = sbf.charat (i + 1);
if ('cercle'! = t && 'millions'! = t && 'millions'! = t)
sbf.deletecharat (i + 1);
autre
sbf.deletecharat (i);
si (i! = 0)
if (sbf.charat (i - 1) == 'zéro') {
sbf.deletecharat (i - 1);
je--;
}
}
}
if (sbf.length () == 1) {
if ('cercle'! = sbf.charat (0))
sbf.setLength (0);
}
retour SBF;
}
public static stringbuffer m2 (String de) {
if (de.length ()> 2)
de = de.substring (0, 2);
de = de.replaceFirst ("00", "");
StringBuffer sb = new 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)));
commutateur (sb.length ()) {
Cas 1:
SB.APPEND ("Angle");
casser;
Cas 2:
SB.Setcharat (1, map.get (sb.charat (1)));
if (sb.charat (0)! = 'zéro')
sb.insert (1, «angle»);
SB.APPEND ("Score");
casser;
défaut:
casser;
}
}
retourner sb;
}
public static void main (String [] args) {
String s = "44444444441.23";
String S1 = "1";
String S2 = "1000000000.01";
String S3 = "101010002.11";
MS);
M (S1);
M (S2);
M (S3);
}
}