黑马程序员技术交流社区

标题: 输入数字,打印对应的中文数字 [打印本页]

作者: yy505032788    时间: 2014-12-13 11:59
标题: 输入数字,打印对应的中文数字
        之前我乱点,报名了黑马(这算浪费了一次机会了么,泪奔……),然后发给我一套试题:
         从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
     因为当时是看基础视频自学的,看到这道题就懵了,完全不知道怎么下手,但在来传智三四天的时候,问了下同学怎么把输入的字符串转换为数组,然后就给鼓捣出来了,还是自我控制能力差,一个人的时候动手能力也差,代码敲得少,看下API也不知道如何动手。
     思路:
                1.录入的数字用字符串来接收
                2.遍历字符串
                3.用switch选择结构做一个循环,用字符串里面每一个字符来匹配switch里面的值
                4.把字符串每一个字符匹配的case值做拼接。
     来传智这就又翻到了这一题,自己写下实现过程,这个好习惯得感谢风清扬老师。
     当时代码都弄好了,然后测试出问题了,用swithc做了循环输出后,不用再拼接,后面就一直多一个最后输入的数字,就问了下老师,讲了一下,恍然大悟,然来第四步可以不用的。
     代码如下:
import java.util.Scanner;
class PrintChinese
{
        public static void main(String[] args)
        {
                //1.录入的数字用字符串来接收
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个正整数:");
                String str=sc.next();//先把录入的数据转成字符串
                char[] array = str.toCharArray();
                char c = '\u0000';
               
                //2.遍历字符串
                //char[] toCharArray()
                /*
                for(char s: str.toCharArray())//将字符串转为一个新的字符数组
                {
                        System.out.print(s);
                }
                */
                for(int i = 0; i < array.length; i++ )
                {
                        //System.out.print(array);
                        //char c = '\u0000';
                        c = array;
                        //3.用switch选择结构做一个循环,
                        //用字符串里面每一个字符来匹配switch里面的值
                        switch(c)
                        {
                                case '0':
                                        System.out.print("零");
                                        break;
                                case '1':
                                        System.out.print("一");
                                        break;
                                case '2':
                                        System.out.print("二");
                                        break;
                                case '3':
                                        System.out.print("三");
                                        break;
                                case '4':
                                        System.out.print("四");
                                        break;
                                case '5':
                                        System.out.print("五");
                                        break;
                                case '6':
                                        System.out.print("六");
                                        break;
                                case '7':
                                        System.out.print("七");
                                        break;
                                case '8':
                                        System.out.print("八");
                                        break;
                                case '9':
                                        System.out.print("九");
                                        break;
                                default :
                                        break;
                        }
                        //System.out.print(c);
                }
                //System.out.print(c);底下不需要输出语句
        }
}
      相信这题还有很多做法,只是记录当时的一些想法。


作者: 浅木头    时间: 2014-12-13 14:09
12.13,养肥再看~
作者: 焦明坤    时间: 2014-12-14 18:26
真牛逼!!!!膜拜下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2