java 数字转大写的小程序
package tmser.com;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
/**
* 实现数字转换为大写
* 支持小数点
* @author tjx
*/
public class ChineseNumberTranslateUtils {
private static final Map<Long,String> charMap = new HashMap<Long,String>();
private static final String POINT = "点";
static{
charMap.put(0l,"零");
charMap.put(1l,"壹");
charMap.put(2l,"贰");
charMap.put(3l,"叁");
charMap.put(4l,"肆");
charMap.put(5l,"伍");
charMap.put(6l,"陆");
charMap.put(7l,"柒");
charMap.put(8l,"捌");
charMap.put(9l,"玖");
charMap.put(10l,"拾");
charMap.put(100l,"佰");
charMap.put(1000l,"仟");
charMap.put(10000l,"萬");
charMap.put(100000000l, "亿");
}
private static Long[] ls = new Long[]{100000000l,10000l,1000l,100l,10l,1l};
/**
* 将输入的字符串转换为中文数字
* @param is 输入的字符串
* @return
*/
public static String parse(String is){
StringBuilder sb = new StringBuilder();
if(is == null || "".equals(is.trim())){
sb.append("你没有输入任何数据!");
}else{
String[] nums = is.trim().replace("-","").replace("+", "").replace(".","").split("");
Double innum = 0d;
for(String s:nums){
if(s.equals(""))
continue;
int a = s.charAt(0);
if(a > 57 || a < 48){
sb.append("你输入的不是数字!");
return sb.toString();
}
}
try {
innum = Double.parseDouble(is);
sb.append(getParseDouble(innum,2));
} catch (NumberFormatException e) {
sb.append("噢,GOD,还没见过这么大的数字!");
}
}
return sb.toString();
}
继续加油努力 期待ing
很不错哦