黑马程序员技术交流社区

标题: 把数字用中文的形式打印出来 [打印本页]

作者: 我有上将潘凤    时间: 2016-5-25 23:06
标题: 把数字用中文的形式打印出来
package cn.hyh_04;

public class MoneyDemo {

        public static void main(String[] args) {               
                String[] str1 = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
                String[] str2 = {"","拾","佰","仟","萬","亿"};
                java.util.Scanner sc = new java.util.Scanner(System.in);
                System.out.println("请输入金钱数:");
                long m = sc.nextLong();
                String money = "";
                int k = 0;
                long s = 1;
                while (true) {
                        boolean b =true;
                        for (int i = k; i<=k+7 && m/s != 0 ;i++,s *= 10) {
                                if (m/s%10 == 0) {
                                        continue ;
                                }
                                if (i<=3+k) {
                                        money = str1[(int)(m/s%10)] + str2[i-k] + money;
                                }else if(i > 3+k && i <= 7+k){
                                       
                                        int count = 0;
                                        if (b==true) {
                                                for (long j = i,n = s;j<=7+k;j++,n *=10) {
                                                        if (m/n%10 != 0) {
                                                                count++;
                                                        }
                                                }
                                                b = false;
                                        }
                                       
                                        if (count != 0) {
                                                money = str2[4] + money;
                                        }

                                        money = str1[(int)(m/s%10)] + str2[i-k-4] + money;
                                }
                                if(m/s%10 != 0 &&  m/s/10 != 0 && (m/s/10%10) == 0) {
                                        money = str1[0] + money;
                                }
                        }
                        if (m/s == 0) {
                                break;
                        }
                        money = str2[5] + money;
                        k +=8;
                }
                System.out.println(money);
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2