黑马程序员技术交流社区
标题: 输入数字,打印对应的中文数字 [打印本页]
作者: 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 |