4.金额转换java

由于本人思维逻辑不是很清晰,虽然对了,但是仅供参考=======================

  1. 输入金额:使用Scanner类从控制台读取用户的金额输入。

  2. 金额单位转换:通过convertmoney方法将金额数字转换为中文大写数字单位。这个方法使用一个数组来对应每一位数字的中文表述,如“零”、“壹”、“贰”等。

  3. 控制金额大小:代码中有一个while循环,用来检查用户输入的金额是否超出一定范围(在这个例子中是9999999),如果超出则提示用户重新输入。

  4. 处理零的显示:代码中有一个while循环用来在金额前添加“零”字,以满足中文金额的表述习惯。这个循环会一直执行直到count减到0。count的初始值是7,代表在最大的中文金额单位“拾”之前需要添加“零”的次数。

  5. 组合金额单位danwei方法用来将转换后的数字单位按照中文金额的表述顺序组合起来。

  6. 输出结果:最后,程序输出转换后的中文大写金额。

package string;

import javax.swing.plaf.synth.ColorType;
import java.util.Scanner;
import java.util.zip.CheckedOutputStream;

public class str4 {
    public static void main(String[] args) {
        /*
        *1.键盘输入金额
        *2.转换单位
        *
        * */
        //1.创建scanner对象输入数据
        int  count=7;//默认长度7
        Scanner s=new Scanner(System.in);
        String result="";

        //2.对money判断,进行转换
        System.out.println("请输入金额:");
        int money=s.nextInt();
        while (true) {
            if(money<9999999){
                while (money>0){
                    int a=money%10;
                    result=convertmoney(a)+result;
                money=money/10;
                count--;
                }
break;
            }
            else {
                System.out.println("输入错误,金额无效,重新输入:");
                money=s.nextInt();
            }

        }
       //方法1: String x=str3.reverse(result);
        //方法2:通过改变赋值的顺序  result=convertmoney(a)+result;
        while (count!=0)
        {
        result='零'+result;
        count--;
        }
        String str1=danwei(result);
        System.out.println(str1);
        }


    /*
    * 1.我要做什么?
    * 2.我要怎么做才能实现
    * 3.要不要返回值,什么类型的?
    * */
    //金额转换
    //相当于查表法
    public  static  String convertmoney(int money){
        //为什么要封装导方法中,因为要实现独立性
        //用户传入一个金额,就可以实现转换
        String result="";
        String arr[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾","佰","仟"};//存放单位
        for (int i = 0; i < arr.length; i++) {

            if(i==money){
                result=result+arr[i];
            }
        }
        return result;
    }
    public  static  String danwei(String s){
        String result="";
        String a[]={"佰","拾","万","千","百","拾","元",};
        for (int i = 0; i < s.length(); i++) {
            char c=s.charAt(i);
            result = result+c+a[i];
        }
        return result;
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值