题目:输入7位数整数金额,转换为中文大写:x佰x拾x万x仟x佰x拾x元。例如:输入1234,输出零元零拾零佰壹仟贰万叁拾肆佰
首先键盘录入,并判断输入是否有效:
//主函数:
int money;
while (true) {
System.out.println("请输入金额:");
money = sc.nextInt();
if (money >= 0 && money <= 9999999) {
break;
} else {
System.out.println("金额无效,请重新输入:");
}
}
创建一个大小写转换的方法。
分析:将大写汉字存入数组,这样数组的元素就是对应索引的大写汉字 ↓
{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}
传入需要转换的数字,返回该数字索引的元素
//转换方法:
public static String getCapitalNum(int num) {
String money[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
return money[num];
}
将输入的金额拆分进行转换,打印看下结果是否正确:
//主函数:
int n=money;
String capitalNum="";
for (int i = 7; i >0 ; i--) {
int num = n % 10;
capitalNum= getCapitalNum(num)+capitalNum;
n = n / 10;
}
System.out.println(capitalNum);
相同方法插入单位:
//主函数:
String danwei[]={"元","拾","佰","仟","万","拾","佰"};
String bigMoney="";
for (int i = 0; i < capitalNum.length(); i++) {
char c=capitalNum.charAt(i);
bigMoney=bigMoney+c+danwei[i];
}
System.out.println(bigMoney);