import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class UpperChinese
{
//非0的数key为1,0的key为0.
private Map<Integer,Integer> uppermap = new HashMap<Integer,Integer>();
private char[] Unit = {' ','十','百','千','万','十','百','千'};
private char[] Big = {'零','一','二','三','四','五','六','七','八','九'};
//将输入的字符串转换成字符数组
private char[] series = new char[8];
/**
* toChinese 转换大写
* @param 输入的字符串
*/
public void toChinese(String str)
{
StringBuffer sb = new StringBuffer();
series = str.toCharArray();
//i对应位数,index对应大写
for(int i=0;i<series.length;i++)
{
//index为字符串中的每位上的数字
int index = Integer.parseInt(series[i]+"");
//非0的情况
if(0!=index)
{
//value的值为下标
uppermap.put(1,i);
//当非0数字的下标大于0的下标并且0的下标不为空(即数字中含有0)时在中间加零
if(uppermap.get(0)!= null && uppermap.get(1)>uppermap.get(0))
{
【小程序】数字转换RMB大写-------改进版
最新推荐文章于 2024-10-11 16:26:24 发布
这是一个Java程序,用于将输入的8位或8位以下数字转换为大写的人民币形式。程序首先创建一个映射存储非零数字的位置,然后遍历输入的数字字符串,根据数字和位置添加对应的中文大写数字和单位。遇到0时,会根据上下文决定是否添加'零'。用户通过Scanner输入数字,程序会检查输入的有效性并进行转换,最后打印出大写形式的人民币金额。

最低0.47元/天 解锁文章
1440

被折叠的 条评论
为什么被折叠?



