A classe pública RMBConverter2 implementa IRMBConverter {
string final estática privada [] RMB_NUMBER ={"zero","um","dois","três","quatro","五","鲁","七","八","九"};
String final estática privada [] RMB_ATTR = {"元","十","百","千","万","十","百","千","100 milhões","十", " "Cem", "Qian", "Wan", "Dez", "Cem", "Qian"};
private static final String[] RMB_FEN = {"minutos","ângulo"};
@Substituir
public String change2RMB(contagens duplas) {
StringBuffer rsBuf = new StringBuffer();
if (conta == 0L) {
retornar "zero";
}
se (contagens <0)
rsBuf.append("negativo");
String zheng = strConverse(String.valueOf((long)contagens));
String xiao = strConverse(String.valueOf(Math.round((contagens - (longas)contagens)*100)));
char [] zhengArray = zheng.toCharArray();
char [] xiaoArray = xiao.toCharArray();
int zLength = zhengArray.comprimento;
int xComprimento = xiaoArray.comprimento;
List<String> zhengList = new ArrayList<String>();
for(int i =0; i< zComprimento; i++) {
valor int = Integer.parseInt(""+zhengArray[i]);
if (valor == 0 && (i!= 4) && (i!= 8) && i!= 0) {
zhengList.add(RMB_NUMBER[valor]);
}outro {
zhengList.add(RMB_NUMBER[valor]+
RMB_ATTR[i]);
}
}
for(int i = zhengList.size()-1; i>=0; i--) {
rsBuf.append(zhengList.get(i));
}
for(int i =0; i<xComprimento ;i++) {
valor int = Integer.parseInt(""+xiaoArray[i]);
se (valor > 0) {
rsBuf.append(RMB_NUMBER[valor])
.append(RMB_FEN[xLength-i-1]);
}
}
String rs = rsBuf.toString();
rs = rs.replaceAll("zero+", "zero");
rs = rs.replaceAll("zero yuan", "yuan");
rs = rs.replaceAll("00.000", "10.000");
rs = rs.replaceAll("000 milhões", "100 milhões");
rs = rs.replaceAll("bilhão", "bilhão");
retornar rs;
}
string privada strConverse(String str) {
StringBuffer rs = new StringBuffer();
char [] strArray = str.toCharArray();
for(int i = str.length()-1; i>=0; i--) {
rs.append(strArray[i]);
}
retornar rs.toString();
}
public static void main(String args []) {
RMBConverter2 c2 = novo 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));
}
}