用hutool将数字转简体中文和繁体中文,支持金额模式

您所在的位置:网站首页 汉字数字转换 用hutool将数字转简体中文和繁体中文,支持金额模式

用hutool将数字转简体中文和繁体中文,支持金额模式

2024-02-26 11:08| 来源: 网络整理| 查看: 265

最近项目中用到金额转大写的地方,然后hutool里面正好有这个功能。

工具类路径:

cn.hutool.core.convert.Convert#digitToChinese

 方法描述:

/** * 金额转为中文形式 * * @param n 数字 * @return 中文大写数字 * @since 3.2.3 */ public static String digitToChinese(Number n) { if(null == n) { return "零"; } return NumberChineseFormatter.format(n.doubleValue(), true, true); }

参数是Number类型,而Bigdecimal也是此类的子类,所以使用Bigdecimal和这个类就可以实现功能了

后来我又看了这个方法的实现,里面调用了NumberChineseFormatter这个类的方法,而这个类又封装了一层方法

cn.hutool.core.convert.NumberChineseFormatter#format(double, boolean, boolean)

 这个方法多了两个参数,isUseTraditional和isMoneyMode,分别表示是否使用繁体大写和是否表示金额

/** * 阿拉伯数字转换成中文,小数点后四舍五入保留两位. 使用于整数、小数的转换. * * @param amount 数字 * @param isUseTraditional 是否使用繁体 * @param isMoneyMode 是否为金额模式 * @return 中文 */ public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode) { //此处省略hutool方法体代码 }

isUseTraditional:是否转为繁体。false将阿拉伯数字转为 "一", "二", "三"简体形式,true将阿拉伯数字转换为"壹", "贰", "叁"繁体形式;

isMoneyMode:是否金额模式。false将数字转为纯中文数字,true将阿拉伯数字转为带"元","角","分"的中文数字。

总结:如果用这个方法,既可以将数字转简体中文,又可以转为金额形式。

应用:

一、将阿拉伯数字序号转为简单中文数字:

List numbers = Arrays.asList(1,2.0,3.31,4.71,5.86); System.out.println("数字转序号:"); numbers.forEach(item ->{ System.out.println(NumberChineseFormatter.format(item.doubleValue(), false, false)); });

控制台输出:

数字转序号: 一 二 三点三一 四点七一 五点八六

二、将阿拉伯金额转为中文大写金额

List numbers = Arrays.asList(1,2.0,3.31,4.71,5.86); System.out.println("数字转金额:"); numbers.forEach(item ->{ System.out.println(NumberChineseFormatter.format(item.doubleValue(), true, true)); });

控制台输出:

数字转金额: 壹元整 贰元整 叁元叁角壹分 肆元柒角壹分 伍元捌角陆分

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3