/*     */ package com.picc.grab.util;
/*     */ 
/*     */ import org.apache.commons.lang3.StringUtils;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class ConvertUpMoney
/*     */ {
/*  10 */   private static final String[] NUMBERS = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
/*     */   
/*  12 */   private static final String[] IUNIT = new String[] { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
/*     */   
/*  14 */   private static final String[] DUNIT = new String[] { "角", "分", "厘" };
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static String toChinese(String str) {
/*     */     String integerStr, decimalStr;
/*  23 */     if (StringUtils.isBlank(str) || !str.matches("(-)?[\\d]*(.)?[\\d]*")) {
/*  24 */       return "抱歉，请输入数字！";
/*     */     }
/*     */     
/*  27 */     if ("0".equals(str) || "0.00".equals(str) || "0.0".equals(str)) {
/*  28 */       return "零元";
/*     */     }
/*     */ 
/*     */     
/*  32 */     boolean flag = false;
/*  33 */     if (str.startsWith("-")) {
/*     */       
/*  35 */       flag = true;
/*  36 */       str = str.replaceAll("-", "");
/*     */     } 
/*     */ 
/*     */     
/*  40 */     str = str.replaceAll(",", "");
/*     */ 
/*     */ 
/*     */ 
/*     */     
/*  45 */     if (str.indexOf(".") > 0) {
/*  46 */       integerStr = str.substring(0, str.indexOf("."));
/*  47 */       decimalStr = str.substring(str.indexOf(".") + 1);
/*  48 */     } else if (str.indexOf(".") == 0) {
/*  49 */       integerStr = "";
/*  50 */       decimalStr = str.substring(1);
/*     */     } else {
/*  52 */       integerStr = str;
/*  53 */       decimalStr = "";
/*     */     } 
/*     */ 
/*     */     
/*  57 */     if (integerStr.length() > IUNIT.length) {
/*  58 */       return "超出计算能力！";
/*     */     }
/*     */ 
/*     */     
/*  62 */     int[] integers = toIntArray(integerStr);
/*     */     
/*  64 */     if (integers.length > 1 && integers[0] == 0) {
/*  65 */       return "抱歉，输入数字不符合要求！";
/*     */     }
/*     */     
/*  68 */     boolean isWan = isWan5(integerStr);
/*     */     
/*  70 */     int[] decimals = toIntArray(decimalStr);
/*     */     
/*  72 */     String result = getChineseInteger(integers, isWan) + getChineseDecimal(decimals);
/*  73 */     if (flag)
/*     */     {
/*  75 */       return "负" + result;
/*     */     }
/*  77 */     return result;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   private static int[] toIntArray(String number) {
/*  87 */     int[] array = new int[number.length()];
/*  88 */     for (int i = 0; i < number.length(); i++) {
/*  89 */       array[i] = Integer.parseInt(number.substring(i, i + 1));
/*     */     }
/*  91 */     return array;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static String getChineseInteger(int[] integers, boolean isWan) {
/* 101 */     StringBuffer chineseInteger = new StringBuffer("");
/* 102 */     int length = integers.length;
/* 103 */     if (length == 1 && integers[0] == 0) {
/* 104 */       return "";
/*     */     }
/* 106 */     for (int i = 0; i < length; i++) {
/* 107 */       String key = "";
/* 108 */       if (integers[i] == 0) {
/* 109 */         if (length - i == 13) {
/* 110 */           key = IUNIT[4];
/* 111 */         } else if (length - i == 9) {
/* 112 */           key = IUNIT[8];
/* 113 */         } else if (length - i == 5 && isWan) {
/* 114 */           key = IUNIT[4];
/* 115 */         } else if (length - i == 1) {
/* 116 */           key = IUNIT[0];
/*     */         } 
/* 118 */         if (length - i > 1 && integers[i + 1] != 0) {
/* 119 */           key = key + NUMBERS[0];
/*     */         }
/*     */       } 
/* 122 */       chineseInteger.append((integers[i] == 0) ? key : (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
/*     */     } 
/* 124 */     return chineseInteger.toString();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   private static String getChineseDecimal(int[] decimals) {
/* 133 */     StringBuffer chineseDecimal = new StringBuffer("");
/* 134 */     for (int i = 0; i < decimals.length && 
/* 135 */       i != 3; i++)
/*     */     {
/*     */       
/* 138 */       chineseDecimal.append((decimals[i] == 0) ? "" : (NUMBERS[decimals[i]] + DUNIT[i]));
/*     */     }
/* 140 */     return chineseDecimal.toString();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   private static boolean isWan5(String integerStr) {
/* 149 */     int length = integerStr.length();
/* 150 */     if (length > 4) {
/* 151 */       String subInteger = "";
/* 152 */       if (length > 8) {
/* 153 */         subInteger = integerStr.substring(length - 8, length - 4);
/*     */       } else {
/* 155 */         subInteger = integerStr.substring(0, length - 4);
/*     */       } 
/* 157 */       return (Integer.parseInt(subInteger) > 0);
/*     */     } 
/* 159 */     return false;
/*     */   }
/*     */ 
/*     */   
/*     */   public static void main(String[] args) {
/* 164 */     System.out.println(toChinese("956546125"));
/*     */   }
/*     */ }


/* Location:              C:\Users\Administrator\Desktop\ROOT\WEB-INF\classes\!\com\picc\gra\\util\ConvertUpMoney.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */