源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

支票金额大写转换示例(金额大写转换器)

  • 时间:2022-01-26 02:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:支票金额大写转换示例(金额大写转换器)
[u]复制代码[/u] 代码如下:
import java.util.HashMap; import java.util.Map; public class FigureAndChinese2Util {  // 缓存所有数字的  private static Map<Character, Character> map = new HashMap<Character, Character>(    10);  static {   map.put('1', '壹');   map.put('2', '贰');   map.put('3', '叁');   map.put('4', '肆');   map.put('5', '伍');   map.put('6', '陆');   map.put('7', '柒');   map.put('8', '捌');   map.put('9', '玖');   map.put('0', '零');  }  static char[] mode = new char[] { '拾', '佰', '仟' };  public static void m(String sb) {   StringBuffer sbf = new StringBuffer();   String[] sp = sb.split("\\.");   if (sp.length == 2) {    m0(sp[0], 0, sbf);    sbf.append(m2(sp[1]));   } else    m0(sb, 0, sbf);   sbf.append("整");   System.out.println(sbf);  }  /***   * 切割字符串   *   * @param sb   */  public static void m0(String sb, int type, StringBuffer sbf) {   int len = sb.length();   int b = 0;   type++;   if (len >= 4) {    b = len - 4;    sbf.insert(0, m1(sb.substring(b), type));    m0(sb.substring(0, b), type, sbf);   } else if (len > 0)    sbf.insert(0, m1(sb, type));   if ('零' == sbf.charAt(0))    sbf.deleteCharAt(0);  }  /***   * 处理   *   * @param sb   */  public static StringBuffer m1(String sb, int type) {   StringBuffer sbf = new StringBuffer(sb);   switch (type) {   case 1:    sbf.append("圆");    break;   case 2:    sbf.append("万");    break;   case 3:    sbf.append("亿");    break;   default:    break;   }   // 开始赋值   int b = 0;   char t = 0;   for (int i = sbf.length() - 2; i >= 0; i--) {    t = sbf.charAt(i);    sbf.setCharAt(i, map.get(t));    if (i != 0)     sbf.insert(i, mode[b]);    b++;   }   for (int i = 0; i < sbf.length(); i++) {    t = sbf.charAt(i);    if (t == '零') {     t = sbf.charAt(i + 1);     if ('圆' != t && '万' != t && '亿' != t)      sbf.deleteCharAt(i + 1);     else      sbf.deleteCharAt(i);     if (i != 0)      if (sbf.charAt(i - 1) == '零') {       sbf.deleteCharAt(i - 1);       i--;      }    }   }   if (sbf.length() == 1) {    if ('圆' != sbf.charAt(0))     sbf.setLength(0);   }   return sbf;  }  public static StringBuffer m2(String de) {   if (de.length() > 2)    de = de.substring(0, 2);   de = de.replaceFirst("00", "");   StringBuffer sb = new StringBuffer(de);   if (sb.length() > 0) {    if (sb.charAt(sb.length() - 1) == '0')     sb.deleteCharAt(sb.length() - 1);    sb.setCharAt(0, map.get(sb.charAt(0)));    switch (sb.length()) {    case 1:     sb.append("角");     break;    case 2:     sb.setCharAt(1, map.get(sb.charAt(1)));     if (sb.charAt(0) != '零')      sb.insert(1, '角');     sb.append("分");     break;    default:     break;    }   }   return sb;  }  public static void main(String[] args) {   String s = "4444444441.23";   String s1 = "1";   String s2 = "1000000000.01";   String s3 = "101010002.11";   m(s);   m(s1);   m(s2);   m(s3);  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部