黑马程序员技术交流社区
标题:
一个小题,大家看看有没有更简单的方法
[打印本页]
作者:
lvzhfeng
时间:
2015-6-26 15:15
标题:
一个小题,大家看看有没有更简单的方法
package com.itheima;
/**
* 第三题:从键盘接受一个数字,列出该数字的中文表示格式,
* 例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
* @author Machel
*/
import java.io.*;
public class Test3{
public static void main(String[] args) throws Exception
{
//读取键盘录入
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = bufr.readLine())!=null)
{
String str = changeStr(line);
System.out.println(str);
//当键入over时,结束程序
if ("over".equals(line))
break;
}
bufr.close();
}
//定义一个changeStr()方法,用以转换阿拉伯数字与中文数字
public static String changeStr(String str)
{
char[] num = new char[]{'0','1','2','3','4','5',
'6','7','8','9'};
char[] chinese = new char[]{'零','一','二','三','四','五',
'六','七','八','九'};
char[] strArr = str.toCharArray();
for(int i=0;i<strArr.length;i++)
{
for (int j=0; j<=9; j++)
{
if (strArr[i]==num[j])
{
strArr[i] = chinese[j];
}
}
}
str = String.copyValueOf(strArr);
return str;
}
}
复制代码
作者:
风一样的少年
时间:
2015-6-26 15:27
很好,支持下
作者:
fmi110
时间:
2015-6-26 16:59
看看学习一下
作者:
半月
时间:
2015-6-26 17:37
既然转换的是数字干嘛还循环判断他是那个数字
直接输出对数字对应下标不就好了
我吧你第二个for改成
//如果字符是0-9之间就转换
if(strArr[i]>='0' && strArr[i]<='9'){
strArr[i] = chinese[strArr[i]-'0'];
}
复制代码
char[] num = new char[]{'0','1','2','3','4','5',
'6','7','8','9'};这句就没必要了
作者:
lvzhfeng
时间:
2015-6-26 20:55
半月 发表于 2015-6-26 17:37
既然转换的是数字干嘛还循环判断他是那个数字
直接输出对数字对应下标不就好了
我吧你第二个for改成
受教了。。
作者:
keto
时间:
2015-6-26 21:06
学习了。。。。
作者:
Overheat
时间:
2015-6-26 21:13
很好,学习学习
作者:
夜空中最亮的星
时间:
2015-6-26 21:28
很好学习了,赞一个!
作者:
e275919713
时间:
2015-6-26 21:37
涨姿势了
作者:
进军黑马
时间:
2015-6-26 21:53
挺好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2