金额装换
金额转换(支票:七位)
核心方法
-
查表法
-
把大写的中文存到数组当中
-
通过数字索引大写的中文使之一一对应
-
字符串拼接
代码实现
1.键盘录入金额并对金额范围进行控制
Scanner sc = new Scanner(System.in);
int money;
//对money范围进行判断
while(true){
System.out.println("输入金额");
money = sc.nextInt();
if(money >= 0 && money <= 9999999){
break; //break只能在循环内使用
}else {
System.out.println("金额无效");
}
}
2.得到money里面的每一个数字,再将其转成中文
//用一个变量来表示钱的大写
String moneyStr = "";
while(true){
//从右往左获取数据,因为右侧是数据的个位
int ge = money % 10;
String capitalNumber = getCapitalNumber(ge);
//把转换之后的大写拼接到moneyStr当中
moneyStr = capitalNumber + moneyStr ;
//"" + “伍” = “伍” 第一次循环结束之后:moneyStr “伍”
//“伍” + “叁” = “伍叁” 第二次循环结束之后:moneyStr “伍叁”
//去掉刚刚获得的数据
money = money / 10;
//如果数字上的每一位全部取到了,那么money记录的就是0,此时循环结束
if(money == 0){
break;
}
}
//定义一个方法把数字变成大写的中文
//1.--壹
public static String getCapitalNumber(int number) {
String [] arr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
//返回结果
return arr[number];
}
3.在不满七位的金额前补0,补齐七位
int count = 7 - moneyStr.length();
for(int i = 0; i < count; i++){
moneyStr = "零" + moneyStr;
}
System.out.println(moneyStr);
4.插入单位
//定义一个数组表示单位
String[] arr = {"佰","拾","万","仟","佰","拾","元"};
//遍历moneyStr,依次得到 零 零 零 贰 壹 叁 伍
//然后把arr的单位插入进去
String result = "";
for(int i = 0; i < moneyStr.length(); i++ ){
char c = moneyStr.charAt(i);
//把大写数字和单位拼接到result当中
result = result + c + arr[i];
}
//打印最终结果
System.out.println(result);
}
结果
输入金额 2135 零零零贰壹叁伍 零佰零拾零万贰仟壹佰叁拾伍元
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App