JAVA的一个面试题?谁帮我解决下?

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:17:09
题目:
将阿拉伯数字的金额转换成中国货币的大写格式、如:
(¥1018)->(一千零一拾捌元整)
想了很久实在没想到怎么解决 知道的帮我解决下?

编译ok 很简单
public static String change(String s){
String[] s1 = { "", "拾", "佰", "仟" };
String[] s2 = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
String[] s3 = { "元整", "万", "亿" };
String[] s4 = { "万", "亿" };
s = s.substring(1);
String result = "";
for (int i = 0; i < s.length(); i++) {
int numIndex = (int) s.charAt(i) - 48;
int index = s.length() - 1 - i;
int unitIndex = index % 4;
if (numIndex != 0 || unitIndex != 3) {
result += s2[numIndex];
}
if (numIndex != 0) {
result += s1[unitIndex];
}
if (unitIndex == 0) {
if (index >= 12) {
result += s4[(index - 1) / 4 % 2];
} else {
result += s3[index / 4 % 3