数字转换为大写

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qfzhangwei/article/details/79352881
 
 


public class CN {


    private static String[] CN_NUMBER = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    private static String[] UNITE = new String[]{"元", "拾", "佰", "千", "万", "拾", "佰", "千", "亿", "拾", "佰", "千", "兆"};


    public static String number2CN(int number) {


        int zeroRangeLength = 0;
        boolean zeroBegin = false;
        int placeHolderIndex = 0;
        StringBuilder sb = new StringBuilder();


        for (; ; ) {
            if (number == 0) {
                break;
            }
            int x = number % 10;




            if (x > 0) {
                sb.insert(0, UNITE[placeHolderIndex]);
                sb.insert(0, CN_NUMBER[x]);
                zeroBegin = false;


                zeroRangeLength=0;
            } else if (x == 0) {
                if (!zeroBegin && placeHolderIndex!=zeroRangeLength) {
                    sb.insert(0, CN_NUMBER[0]);
                    zeroBegin = true;
                }
                if (placeHolderIndex % 4 == 0 && number % 10000 > 0) {
                    sb.insert(0, UNITE[placeHolderIndex]);
                }
                zeroRangeLength++;


            }


            placeHolderIndex++;
            number = number / 10;


        }
        return sb.toString();
    }


    public static void main(String[] args) {
        String s = number2CN(999990010);
        System.out.println(s);
    }
}

猜你喜欢

转载自blog.csdn.net/qfzhangwei/article/details/79352881
今日推荐