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个数字中就用到了【仟,佰,拾】,这个循环不知道怎么写了。。。还有就是怎么加上【万,亿】这些单位。。头疼木有思路。。。