iOS写完之后顺便把android也写了,凑合着用吧,一样的避免了像什么零佰、零仟这种情况,还有壹仟壹圆、壹万壹佰这种情况,写的略麻烦,不过可以凑合用

/**     * 数字金额大写转换     * 要用到正则表达式     */    public static String digitUppercase(String money){        if (money.length() == 0)            return "";        if (Double.parseDouble(money) == 0)            return "零圆整";        String fraction[] = {"角", "分"};        String digit[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };        String unit[][] = {{"圆", "万", "亿"}, {"", "拾", "佰", "仟"}};        String [] numArray = money.split("\\.");        String amountInWords = "";        double n = Double.parseDouble(money);        int integerPart = (int)Math.floor(n);        for (int i = 0; i < unit[0].length && integerPart > 0; i++) {            String temp ="";            int tempNum = integerPart%10000;            if (tempNum != 0 || i == 0) {                for (int j = 0; j < unit[1].length && integerPart > 0; j++) {                    temp = digit[integerPart%10]+unit[1][j] + temp;                    integerPart = integerPart/10;                }                /*                 *正则替换,加上单位                 *把零佰零仟这种去掉,再去掉多余的零                 */                amountInWords = temp.replaceAll("(零.)+", "零").replaceAll("^$", "零").replaceAll("(零零)+", "零") + unit[0][i] + amountInWords;            } else {                integerPart /= 10000;                temp = "零";                amountInWords = temp + amountInWords;            }            amountInWords = amountInWords.replace("零" + unit[0][i], unit[0][i] + "零");            if (i > 0) amountInWords = amountInWords.replace("零" + unit[0][i-1], unit[0][i-1] + "零");        }        String fWordsStr = "";        if (numArray.length > 1) {            String fStr = numArray[1];            int iLen = fraction.length < fStr.length() ? fraction.length : fStr.length();            for (int i = 0; i < iLen; i++) {                int numInt = Integer.parseInt(fStr.substring(i, i+ 1));                if (numInt == 0) continue;                if (amountInWords.length() > 0 && fWordsStr.length() == 0 && i > 0)                    fWordsStr = "零";                fWordsStr += (digit[numInt] + fraction[i]);            }        }        if (fWordsStr.length() == 0) fWordsStr = "整";        amountInWords = amountInWords + fWordsStr;        amountInWords = amountInWords.replaceAll("(零零)+", "零").replace("零整", "整");        return  amountInWords;    }

iOS版的有需要可以看一下:http://www.jianshu.com/p/c6b9f6dc3a96

更多相关文章

  1. Android快速实现手机号及邮箱验证(手机号正则表达式及邮箱正则表
  2. 正则表达式的不包含
  3. 实用正则表达式扫描android SDcard的文件
  4. Android(安卓)正则表达式学习
  5. 07文本处理工具和正则表达式
  6. android 仿淘宝实现标题栏滑动渐变效果,gif有点丑,凑合看吧!
  7. Android(安卓)TextUtils类介绍
  8. Android学习:TextUtils类介绍
  9. 如何判断是手机端还是PC端?

随机推荐

  1. android 学习之触摸事件 -- 认识MotionEv
  2. android JSON解析数据-解析天气预报
  3. android src 各个版本源码下载
  4. android与js之间的交互
  5. Android(安卓)5.0新控件常用属性收集
  6. [置顶] 深入浅出 - Android系统移植与平
  7. Unity3D接入微信开放平台SDK(有Unity demo
  8. android view 的使用
  9. Android(安卓)公用XML解析
  10. 用NDK调用Android手机自带的openssl库函