数字转换成汉字大写

该算法根据数字和汉字大写的区别和规律获得每个数字的单位量度,将其放在相应的位置:(代码来自《疯狂java讲义》)

public class Num2Rmb {
	private String[] hanArr={"零","壹","贰","叁","肆","伍",
			"陆","柒","捌","玖"};
	//根据数字的位置设置相应的单位量
	private String[] unitArr={"拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"};

	private String toHanStr(String numStr)
	{
		String result="";
		int numLen=numStr.length();
		for (int i=0;i<numLen; i++)
		{
			int num=numStr.charAt(i)-48;
			//注意第一个数字和最后一个数字
			if(i!=numLen-1 && num!=0)
			{
				result+=hanArr[num]+unitArr[numLen-2-i];
			}
			else
			{
				result+=hanArr[num];
			}
		}
		return result;
	}
	public static void main(String[] args)
	{
		Num2Rmb nr = new Num2Rmb();
		
		System.out.println(nr.toHanStr("633779433451"));
		//陆仟叁佰叁拾柒亿柒仟玖佰肆拾叁万叁仟肆佰伍拾壹
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Java 实现将数字转换成中文大写的示例代码: ```java import java.util.Scanner; public class NumberToChinese { private static final String[] CN_NUMBERS = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"}; private static final String[] CN_UNITS = {"", "十", "百", "千", "万"}; public static String convert(int n) { if (n < 0) { return "负" + convert(-n); } if (n < 10) { return CN_NUMBERS[n]; } if (n < 100) { if (n % 10 == 0) { return CN_UNITS[1 + n / 10]; } else { return CN_UNITS[1 + n / 10] + CN_NUMBERS[n % 10]; } } if (n < 1000) { if (n % 100 == 0) { return CN_NUMBERS[n / 100] + "百"; } else if (n % 100 < 10) { return CN_NUMBERS[n / 100] + "百零" + convert(n % 100); } else { return CN_NUMBERS[n / 100] + "百" + convert(n % 100); } } if (n < 10000) { if (n % 1000 == 0) { return CN_NUMBERS[n / 1000] + "千"; } else if (n % 1000 < 100) { return CN_NUMBERS[n / 1000] + "千零" + convert(n % 1000); } else { return CN_NUMBERS[n / 1000] + "千" + convert(n % 1000); } } if (n < 100000000) { if (n % 10000 == 0) { return convert(n / 10000) + "万"; } else if (n % 10000 < 1000) { return convert(n / 10000) + "万零" + convert(n % 10000); } else { return convert(n / 10000) + "万" + convert(n % 10000); } } return ""; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); System.out.println(convert(n)); } } ``` 运行以上代码,输入一个整数,即可输出该整数的中文大写形式。例如,输入 123456789,输出结果为: ``` 一亿二千三百四十五万六千七百八十九 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值