공개 클래스 RMBConverter2는 IRMBConverter를 구현합니다.
private static final String [] RMB_NUMBER ={"zero","one","two"," three","four","五","鲁","七","八","九"};
private static final String [] RMB_ATTR = {"원","十","百","千","万","十","百","千","1억","十", " "백", "건", "완", "텐", "백", "건"};
private static final String[] RMB_FEN = {"분","각도"};
@보수
공개 문자열 변경2RMB(이중 카운트) {
StringBuffer rsBuf = 새로운 StringBuffer();
if (개수 == 0L) {
"0"을 반환합니다.
}
if (개수 < 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 = new ArrayList<String>();
for(int i =0; i< zLength; i++) {
int value = Integer.parseInt(""+zhengArray[i]);
if (값 == 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]);
if (값 > 0 ) {
rsBuf.append(RMB_NUMBER[값])
.append(RMB_FEN[xLength-i-1]);
}
}
문자열 rs = rsBuf.toString();
rs = rs.replaceAll("zero+", "zero");
rs = rs.replaceAll("0위안", "위안");
rs = rs.replaceAll("00,000", "10,000");
rs = rs.replaceAll("억", "1억");
rs = rs.replaceAll("10억", "10억");
RS를 반환;
}
개인 문자열 strConverse(문자열 str) {
StringBuffer rs = 새로운 StringBuffer();
char [] strArray = str.toCharArray();
for(int i = str.length()-1; i>=0; i--) {
rs.append(strArray[i]);
}
rs.toString()을 반환합니다.
}
공개 정적 무효 메인(문자열 인수 []) {
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));
}
}