16.text--金额转换
金额转换
例如:2135 --> 零佰零拾零万贰仟壹佰叁拾伍元
789 --> 零佰零拾零万零仟柒佰捌拾玖元
可以将大写的数字存放进数组中,用小写的数字作为索引使用
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int money;
System.out.println("请录入一个金额:");
//1.键盘录入金额数字,并进行限制
while (true){
money = s.nextInt(); //2135
if(money >= 0 && money <= 9999999){
break;
}else{
System.out.println("输入金额有误!请重新输入:");
}
}
//2.定义变量存放转换后的大写数字
String moneyStr = "";
//得到money的每一位数字
while(true){
//从右往左获取个位数数据
int ge = money % 10;
//传进方法中,转换为大写数字
String capitalNumber = getCapitalNumber(ge);
//变换位置,可以改变字符存放位置
moneyStr = capitalNumber + moneyStr;
//去掉已经获得的数据
money = money / 10;
//若每一位数都获取到了,则退出循环
if(money == 0){
break;
}
}
//3.在前面补0,补足七位
int count = 7 - moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr = "零" + moneyStr;
}
//4.插入单位
//定义数组,表示单位
String[] unit = {"佰","拾","万","仟","佰","拾","元",};
String result = ""; //定义空数组拼接
//遍历字符串,一个字符拼接一个单位
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
result = result + c + unit[i];
}
//5.打印最终结果
System.out.println(result);
s.close();
}
//定义一个方法,存放大写数字,传入金额,作为索引,调取大写数字,以作转换
public static String getCapitalNumber(int number){
String[] nums = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return nums[number];
}