A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);
               
        }
       
       
}

10 个回复

正序浏览

回帖奖励 +1

本帖最后由 赵越海 于 2016-7-8 17:23 编辑

         .
回复 使用道具 举报
还不懂 学习
回复 使用道具 举报

回帖奖励 +1

写的还行
回复 使用道具 举报
gao896827735 发表于 2015-1-2 11:59
在哪学正则啊  没找到视频

毕老师课程最后一节就是啊
回复 使用道具 举报
在哪学正则啊  没找到视频
回复 使用道具 举报
正则不太懂,学习
回复 使用道具 举报
bjuth 发表于 2015-1-2 11:18
好像和那个 转RMB大写中文 的差不多,那个最后连接成一个字符串时要replaceAll好多,到现在我也没调出一个 ...

那个程序,我也看过,确实很麻烦,A4纸,写了满满两页。
回复 使用道具 举报
好像和那个 转RMB大写中文 的差不多,那个最后连接成一个字符串时要replaceAll好多,到现在我也没调出一个能完美说人话的
回复 使用道具 举报
阿丹435 来自手机 中级黑马 2015-1-2 10:36:39
藤椅
正则表达式好难
回复 使用道具 举报

回帖奖励 +1

不错,但这个while(!f)这个没必要用这个做退出循环的做条件吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马