import java.util.Scanner;
/** 2、 从键盘接受一个数字,列出该数字的中文表示格式,
* 例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
*
*/
public class Test2 {
public static void main(String[] args) {
String num = "";
boolean f = true;
Scanner input = new Scanner(System.in);
do {
System.out.print("输入数字: ");
num = input.next();
/*"[1-9]\\d*" 为正则表达式,判断输入字符串是不是全是由数字组成的
*如是,转换成int类型,调用zhuanhuan()方法。
*[1-9]表示输入字符第一个必须为1-9中间的数,\\d*表示0到9之间的数出现0次或多次。*/
f = num.matches("[1-9]\\d*");
if(f) {
int shuzi = Integer.parseInt(num);
zhuanhuan(shuzi);
}
else {
System.out.println("输入错误,重新输入数字: ");
}
} while(!f); //!f为true返回do;为false结束循环。
}
public static void zhuanhuan(int num) {
String[] chainNum = {"零","一","二","三","四","五","六","七","八","九"};
StringBuilder fan = new StringBuilder();
while(num > 0) {
int i = num % 10;
int j = num / 10;
num = j;
/* append()方法是将char 数组参数的字符串表示形式追加到此序列。返回为StringBuilder
* 类型所以把fan定义成一个新的StringBuilder对象。*/
fan.append(chainNum[i]);
}
//将此字符序列用其反转形式取代。
fan.reverse();
System.out.println(fan);
}
}
|
|