支票金额大写转换示例(金额大写转换器)
支票金额大写转换示例(金额大写转换器)
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:importjava.util.HashMap;importjava.util.Map;publicclassFigure...

复制代码 代码如下:

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);

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类