package com.ycsoft.commons.helper;
/**
* 提供一系列的转换机制功能。
*
* @author hh
* @date Dec 3, 2009 1:10:48 PM
*/
public class ConvertHelper {
private ConvertHelper(){
}
/**
* 将数字型人民币转换成大写的中文字符描述
* @param input 输入字符串
* @return
*/
public static String numToChinese(String input) {
String s1 = "零壹贰叁肆伍陆柒捌玖";
String s4 = "分角整元拾佰仟万拾佰仟亿拾佰仟";
String temp = "";
String result = "";
try {
temp = input.trim();
Float.parseFloat(temp);
} catch (Exception e) {
return "输入字串不是数字串只能包括以下字符(´0´~´9´,´.´),输入字符串最大只能精确到仟亿,小数点只能两位!";
}
int len = 0;
if (temp.indexOf(".") == -1)
len = temp.length();
else
len = temp.indexOf(".");
if (len > s4.length() - 3)
return "输入字串最大只能精确到仟亿,小数点只能两位!";
int n1 = 0;
String num = "";
String unit = "";
for (int i = 0; i < input.length(); i++) {
if (i > len + 2) {
break;
}
if (i == len) {
continue;
}
n1 = Integer.parseInt(String.valueOf(temp.charAt(i)));
num = s1.substring(n1, n1 + 1);
n1 = len - i + 2;
unit = s4.substring(n1, n1 + 1);
result = result.concat(num).concat(unit);
}
if (len == temp.length() || len == temp.length() - 1)
result = result.concat("整");
if (len == temp.length() - 2)
result = result.concat("零分");
return result;
}
}