Java笔试编程题之二 ----数字转换

题目:将键盘输入的数字转换成带单位的,例如 1234567转换成 “壹佰贰拾叁万肆仟伍佰陆拾柒”。

这个题目做着做着没思路了,。求大神指教。。。

目前我只能做到打印不带单位的:

代码如下:

 

import java.util.*;
class T
{
	public static String  convert(int num){
		String numRe =null;
		switch(num){
				case  0:
					numRe="零";
					break;
				case 1:
					numRe="壹";
					break;
				case  2:
					numRe="贰";
					break;
				case 3:
					numRe="叁";
					break;
				case 4:
					numRe="肆";
					break;
				case 5:
					numRe="伍";
					break;
				case  6:
					numRe="陆";
					break;
				case 7:
					numRe="柒";
					break;
				case  8:
					numRe="捌";
					break;
				case 9:
					numRe="玖";
					break;
		}
		return numRe;
	}
	public static void main(String[] args){
		Scanner sc =new Scanner(System.in);  //接收键盘输入
		String numStr =sc.next();

		int num =Integer.parseInt(numStr);  //转换为数字
		StringBuffer sb =new StringBuffer("");
		//while可以使用递归代替
		int i =0;
		while(num%10!=num){
				int temp1 =num/10;
				int temp2 =num%10;
				sb.append(convert(temp2));
				System.out.println("第"+(++i)+"个:"+convert(temp2));
				num=temp1;
		}
		sb.append(convert(num));
		System.out.println("第"+(++i)+"个:"+convert(num));
		System.out.println("-------------不带单位的------------");
		System.out.println(sb.reverse().toString());   //反转后打印出来
	}	
}

上面的代码的运行结果:

关于之后的单位我画了一个图,不过思路不是很清晰,不知道怎么往下玩了。。求指导:

每4个数字中就用到了【仟,佰,拾】,这个循环不知道怎么写了。。。还有就是怎么加上【万,亿】这些单位。。头疼木有思路。。。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值