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个数字中就用到了【仟,佰,拾】,这个循环不知道怎么写了。。。还有就是怎么加上【万,亿】这些单位。。头疼木有思路。。。
- 3楼u011373302昨天 22:42
- http://blog.csdn.net/u011373302/article/details/12835883n这是我写的,你看看,程序还不够健壮。。。。
- 2楼zhouren1314昨天 13:18
- 我写出来了,大概功能实现。。没有实现后面全是0和中间有0.你看 http://blog.csdn.net/zhouren1314/article/details/12844701 在帮改改
- 1楼zhouren1314昨天 09:12
- 感觉递归 能做
- Re: Sgl731524380昨天 10:05
- 回复zhouren1314n递归就是一种隐式的循环。。。