关于java中文数字转换阿拉伯数字

该博客介绍了如何将中文数字转换为阿拉伯数字的方法。针对整数部分,通过拆分数字并乘以相应单位的位数来计算;小数部分则通过字符串拼接实现。最终将转换结果转换为double型,结合正负数判断完成整个转换过程。
摘要由CSDN通过智能技术生成
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Test
{

    public static void main(String[] arg)
    {
        show();
    }

    private static void show()
    {
        Scanner sc = new Scanner(System.in);
        String num = sc.next();
        System.out.println(big(chineseNumber2Int(num)));
        show();
    }

    private static String big(double d) {
        NumberFormat nf = NumberFormat.getInstance();
        // 是否以逗号隔开, 默认true以逗号隔开,如[123,456,789.128]
        nf.setGroupingUsed(true);
        //设置小数位数
        nf.setMaximumFractionDigits(5);
        nf.setRoundingMode(RoundingMode.UP);
        // 结果未做任何处理
        return nf.format(d);
    }


    /**
     * @param chineseNumber
     * @return
     */
    private static double chineseNumber2Int(String chineseNumber){
        double result = 0;
        char[] cnArr = new char[]{'一','二','三','四','五','六','七','八','九'};
        char[] chArr = new char[]{'亿','万','千','百','十'};
        int start = 0;//数字的起点
        int end = 0;//数字断点
        int integerLen = chineseNumber.length();
        boolean hasMinus = false;
        boolean hasPoint = false;//判断是否是小数
        boolean hasLast = false;//判断是否有个位数
        //数字分段(通过从大到小分割)
        Map<Character,String> mapNum = new HashMap<>();

        if (chineseNumber
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值