публичный класс RMBConverter2 реализует IRMBConverter {
Private static Final String [] RMB_NUMBER = {"ноль", "один", "два", "три", "четыре", "五", "鲁", "七", "八", "九"};
Private static Final String [] RMB_ATTR = {"元","十","百","千","万","十","百","千","100 миллионов","十", " "Сотня", "Цянь", "Вань", "Десять", "Сотня", "Цянь"};
частная статическая окончательная строка [] RMB_FEN = {"минуты","угол"};
@Override
публичная строка Change2RMB (двойной счет) {
StringBuffer rsBuf = новый StringBuffer();
если (считается == 0L) {
вернуть «ноль»;
}
если (считается < 0)
rsBuf.append("отрицательный");
String zheng = strConverse(String.valueOf((long)counts));
String xiao = strConverse(String.valueOf(Math.round((counts - (long)counts)*100)));
char [] zhengArray = zheng.toCharArray();
char [] xiaoArray = xiao.toCharArray();
int zLength = zhengArray.length;
int xLength = xiaoArray.length;
List<String> zhengList = новый ArrayList<String>();
for(int i =0; i<zLength; i++) {
int value = Integer.parseInt(""+zhengArray[i]);
if (value == 0 && (i != 4) && (i != 8) && i != 0) {
zhengList.add(RMB_NUMBER[значение]);
}еще {
zhengList.add(RMB_NUMBER[значение]+
RMB_ATTR[i]);
}
}
for(int i = zhengList.size()-1; i>=0; i--) {
rsBuf.append(zhengList.get(i));
}
for(int i =0; i<xLength;i++) {
int value = Integer.parseInt(""+xiaoArray[i]);
если (значение > 0) {
rsBuf.append(RMB_NUMBER[значение])
.append(RMB_FEN[xLength-i-1]);
}
}
Строка rs = rsBuf.toString();
rs = rs.replaceAll("ноль+", "ноль");
rs = rs.replaceAll("ноль юаней", "юань");
rs = rs.replaceAll("00 000", "10 000");
rs = rs.replaceAll("000 миллионов", "100 миллионов");
rs = rs.replaceAll("миллиард", "миллиард");
вернуть рупий;
}
частная строка strConverse (String str) {
StringBuffer rs = новый StringBuffer();
char [] strArray = str.toCharArray();
for(int i = str.length()-1; i>=0; i--) {
rs.append(strArray[i]);
}
вернуть rs.toString();
}
public static void main(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));
}
}