news 2026/4/16 19:57:50

java金额转换,将数字金额转换为7位大写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java金额转换,将数字金额转换为7位大写

来看题:

要将输入的数字(大于零并小于七位)转成如图格式金额
示例输入:
12345
示例输出:
零佰零拾壹万贰千叁佰肆拾伍

题解:
0-9对应的数字可以利用数组下标轻松转换为汉字,因此我们可以先将12345转为壹贰叁肆伍,然后再在前面补零补足7位:
零零壹贰叁肆伍
最后插入单位即可。

首先定义两个数组,一个用来存储汉字单位,一个用来存储汉字进位单位:

privatestaticfinalString[]yuan={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};privatestaticfinalString[]wei={"佰","拾","万","千","佰","拾","元"};

然后做输入数字处理:

intmoney=0;while(true){System.out.println("请输入金额:");money=sc.nextInt();if(money>0&&money<10000000){break;}else{System.out.println("输入错误");}

接下来我们可以先将数字转为汉字表示,这里因为频繁使用字符串拼接,因此创建StringBuilder:

StringBuilderresult=newStringBuilder();while(money>0){inttemp=money%10;result.insert(0,change(temp));money/=10;}

change代码如下:

publicstaticStringchange(intnum){returnyuan[num];}

然后补足7位,可以先计算长度看看需要补几个零,然后用StringBuilder提供的insert方法可以轻松在头部插入:

intcount=7-result.length();for(inti=0;i<count;i++){result.insert(0,"零");}System.out.println(result);

最后我们插入单位,定义两个下标i和j,j表示插入位置,i表示要插入的单位的数组下标。注意j隔一位插入即可:

// 插入单位intj=1;intf=0;while(j<result.length()&&f<wei.length){result.insert(j,wei[f]);j+=2;// 这里注意j要隔一位进行插入f++;}System.out.println(result);

完整代码:

packagemylearn;importjava.util.*;publicclassTest{privatestaticfinalScannersc=newScanner(System.in);privatestaticfinalString[]yuan={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};privatestaticfinalString[]wei={"佰","拾","万","千","佰","拾","元"};publicstaticvoidmain(String[]args){// 指针intmoney=0;while(true){System.out.println("请输入金额:");money=sc.nextInt();if(money>0&&money<100000000){break;}else{System.out.println("输入错误");}}StringBuilderresult=newStringBuilder();while(money>0){inttemp=money%10;result.insert(0,change(temp));money/=10;}intcount=7-result.length();for(inti=0;i<count;i++){result.insert(0,"零");}System.out.println(result);// 插入单位intj=1;intf=0;while(j<result.length()&&f<wei.length){result.insert(j,wei[f]);j+=2;f++;}System.out.println(result);}publicstaticStringchange(intnum){returnyuan[num];}}

end

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:47:06

tiktoken技术深度解析:从BPE原理到高性能编码实践

tiktoken技术深度解析&#xff1a;从BPE原理到高性能编码实践 【免费下载链接】tiktoken tiktoken is a fast BPE tokeniser for use with OpenAIs models. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiktoken 引言&#xff1a;为什么我们需要更好的tokenizer&…

作者头像 李华
网站建设 2026/4/16 7:45:04

VMD-SSA-LSTM与EEMD优化算法在多输入单输出时间序列预测中的应用

VMD-SSA-LSTM变分模态分解-麻雀优化长短期记忆网络 适用于 多输入单输出预测&#xff0c;时间序列预测 通过VMD对功率序列进行分解&#xff0c;然后对分解分量逐一建模进行ssa-LSTM预测。 者可从vmd替换为eemd或进行优化寻参&#xff0c;ssa替换为其他优化算法等方面进行改进 m…

作者头像 李华
网站建设 2026/4/16 9:25:31

The Mirror协作革命:如何让团队开发像在线文档一样流畅?

想象一下这样的场景&#xff1a;你和团队成员正在同时编辑同一个3D空间&#xff0c;你调整物体的位置时&#xff0c;他们正在修改材质属性——没有冲突提示&#xff0c;没有合并对话框&#xff0c;一切修改实时同步&#xff0c;就像你们在同一个Google文档中协作一样自然。这就…

作者头像 李华
网站建设 2026/4/16 11:14:06

fmtlib高效缓冲区管理终极指南:从零掌握现代格式化核心技术

在C高性能编程领域&#xff0c;fmtlib以其卓越的性能表现脱颖而出。作为现代格式化库的代表&#xff0c;它通过精心设计的缓冲区管理机制&#xff0c;在保证类型安全的同时实现了接近原生代码的执行效率。本文将深入剖析fmtlib底层缓冲区实现原理&#xff0c;带你掌握构建高效C…

作者头像 李华
网站建设 2026/4/16 11:14:45

怎么查看电脑显卡显存?3种简单方法教会你

显卡显存&#xff08;Video RAM, VRAM&#xff09;是计算机显卡的重要组成部分&#xff0c;它在图形处理和渲染过程中起着至关重要的作用。显存的大小和性能直接影响到图像处理的速度、显示效果的质量以及运行游戏和专业应用时的流畅度。那么&#xff0c;电脑显卡显存怎么看呢&…

作者头像 李华