黑马程序员技术交流社区
标题:
学了快半月了,越来越喜欢这些字母了。。。
[打印本页]
作者:
活到老,学到老
时间:
2015-11-7 23:52
标题:
学了快半月了,越来越喜欢这些字母了。。。
从键盘接受一个数字,列出该数字的中文表示格式,
例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
package com.intheima;
import java.util.Scanner;
public class Test3 {
//用于跳出循环的标志
private static boolean isrun=true;
//提示字符数组
private static String[] str = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化提示数组
str = new String[]{"提示:","打入字符串EXIT或exit则退出改程序!"};
//作为while循环输出提示的终止条件和要输出的字符数组的下标
int i = 0;
//循环输出提示
while(str.length != i){
//输出提示语句,同时把i的值增加
System.out.println(str[i++].toString());
}
//循环接收并处理输入的字符
while(isrun) {
//初始化接收键盘输入的scanner变量
Scanner userInput = new Scanner(System.in);
//获取用户输入的字符串
String input = userInput.nextLine();
//该异常会在输入的不是数字的情况下进入catch异常处理
try {
//将字符型变量强制转换成int型,如果字符型变量不是数字则会抛出异常
@SuppressWarnings("unused")
int n = Integer.valueOf(input);
/**
* 运行中还出现一种情况
* 当第一位是数字0的情况下
*//*
if(input.length()-StrInput.length() > 0)
{
}*/
//输出输入的数据
System.out.print("您输入的数字是:" + input + "\n" + "处理后的结果是:");
//进入循环来将数字转换成数字字符,以输入的数据的长度为for循环的结束条件
for(int j = 0; j < input.length(); j++) {
//将输入的数据取子串,一次取一个,然后在进行判断转换成想要的结果
switch (Integer.valueOf(input.substring(j, j+1))) {
//判断该数字是0的话转换成零
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.println();
//进入异常处理,也就是用户输入的一定有字母
} catch (Exception e) {
//判断用户的意思,如果是退出的话就退出
if(input.toString().toLowerCase().equals("exit")) {
isrun=false;
break;
}
//如果不是退出,那就是用户输入有误或者是不知道规则
else {
System.out.println("您输入的格式不符合要求!!请重新输入:");
}
}
}
}
}
作者:
黑夜中那颗星
时间:
2015-11-8 10:29
要不要这么麻烦?
直接定义个数组,查表法,就行了
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
char[] ch = {'零','一','二','三','四','五','六','七','八','九'};
String value = s.next();
char[] c = value.toCharArray();
for(int x = 0;x<c.length;x++){
String str = c[x]+"";
int num = new Integer(str);
System.out.print(ch[num]);
}
s.close();
}
}
复制代码
作者:
wx_ao22R6RC
时间:
2015-11-8 11:03
楼上的简单多了,那天我就一直没想明白,后来上网查下,可以把字符串转成字符串数组然后遍历,再把得到的数给数组,就出来对应的了,挺好,java的目的就是简单方便
作者:
zyh1578814923
时间:
2015-11-8 14:16
根本不用这么麻烦的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2