小写数字转化为大写数字(小米OJ题与蓝桥杯题)

 

 

import java.util.*;
public class Main {
    public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        String str;
        String[] num = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        while (scan.hasNextLine()) {
            str = scan.nextLine().trim();
            if (str.equals("0")) {
                System.out.println("零元整");
                continue;
            }
            int len = str.length();
            String ans = "";
            for (int i = 0; i < len; i++) {
                int x = str.charAt(i) - '0';
                if ((len - i) % 4 == 0) {
                    if (x != 0) ans += num[x] + "仟";
                    else if (str.charAt(i + 1) != '0') ans += "零";
                }
                if ((len - i) % 4 == 1) {
                    if (x != 0) {
                        if ((len - i) == 1) ans += num[x];
                        else if ((len - i) == 5) ans += num[x] + "万";
                        else if ((len - i) == 9) ans += num[x] + "亿";
                    } else {
                        if ((len - i) == 5) ans += "万";
                        else if ((len - i) == 9) ans += "亿";
                    }
                }
                if ((len - i) % 4 == 2) {
                    if (x != 0) ans += num[x] + "拾";
                    else if (str.charAt(i + 1) != '0') ans += "零";
                }
                if ((len - i) % 4 == 3) {
                    if (x != 0) ans += num[x] + "佰";
                    else if (str.charAt(i + 1) != '0') ans += "零";
                }
            }
            
            ans = ans.replace("亿万","亿");
            ans+="元整";
            System.out.println(ans);
        }
    }
}
    

  

posted @ 2020-05-12 12:14  wusheng_z  阅读(254)  评论(0编辑  收藏  举报