金额装换

金额转换(支票:七位)

 

核心方法

  • 查表法

  1. 把大写的中文存到数组当中

  2. 通过数字索引大写的中文使之一一对应

  • 字符串拼接

     

代码实现

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 零零零贰壹叁伍 零佰零拾零万贰仟壹佰叁拾伍元

 
posted @   枫叶予  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示