主要使用字符串的知识点来解决问题
利用数组和数字对应来转换
import java.util.Scanner;
public class StringDemo6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int money;
while (true){
System.out.println("请输入金额:");
money = sc.nextInt();
//判断数据的大小,避免出错
if (money >= 0 && money <= 9999999){
break;
}else{
System.out.println("输入的金额无效,请重新输入");
}
}
String moneyStr = "";
while (true){
//从右向左获取数据,因为右边是数据的个位
int ge = money % 10;
String number = getNumber(ge);
moneyStr = getNumber(ge) + moneyStr;
money = money / 10;
//如果数字上面每一位都获取到了,那么money记录的值为0,则循环跳出
if(money == 0){
break;
}
}
System.out.println(moneyStr);
int count = 7 - moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr = "零" + moneyStr;
}
System.out.println(moneyStr);
//插入单位
String[] arr ={"佰","拾","万","仟","佰","拾","元"};
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
//遍历moneyStr,再将单位插入进去
System.out.print(c);
System.out.print(arr[i]);
}
}
//定义一个方法把数字转化成大写数字
public static String getNumber(int number){
//定义数组,让数字和大写的文中产生一个对应关系
String[] arr= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//返回结果
return arr[number];
}
}