之前我乱点,报名了黑马(这算浪费了一次机会了么,泪奔……),然后发给我一套试题:
从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入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);底下不需要输出语句 } } 相信这题还有很多做法,只是记录当时的一些想法。
|