您的位置:首页 > 编程语言 > Java开发

JAVA 数字转换为中文大写的转换

2013-03-05 11:26 148 查看
package zeng.test;

public class CnUpperCaser {
private String integerPart;
private String floatPart;

private static final char[] cnNumbers = { '零', '壹', '贰', '叁', '肆', '伍',
'陆', '柒', '捌', '玖' };

private static final char[] series = { '元', '拾', '百', '仟', '万', '拾', '百',
'仟', '亿' };

/**
* 构造函数,通过它将阿拉伯数字形式的字符串传入
*
* @param original
*/
public CnUpperCaser(String original) {
// 成员变量初始化
integerPart = "";
floatPart = "";

if (original.contains(".")) {
// 如果包含小数点
int dotIndex = original.indexOf(".");
integerPart = original.substring(0, dotIndex);
floatPart = original.substring(dotIndex + 1);
} else {
// 不包含小数点
integerPart = original;
}
}

/**
* 取得大写形式的字符串
*
* @return
*/
public String getCnString() {
// 因为是累加所以用StringBuffer
StringBuffer sb = new StringBuffer();

// 整数部分处理
for (int i = 0; i < integerPart.length(); i++) {
int number = getNumber(integerPart.charAt(i));

sb.append(cnNumbers[number]);
sb.append(series[integerPart.length() - 1 - i]);
}

// 小数部分处理
if (floatPart.length() > 0) {
sb.append("点");
for (int i = 0; i < floatPart.length(); i++) {
int number = getNumber(floatPart.charAt(i));

sb.append(cnNumbers[number]);
}
}

// 返回拼接好的字符串
return sb.toString();
}

/**
* 将字符形式的数字转化为整形数字 因为所有实例都要用到所以用静态修饰
*
* @param c
* @return
*/
private static int getNumber(char c) {
String str = String.valueOf(c);
return Integer.parseInt(str);
}

/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new CnUpperCaser("123456789.12345").getCnString());
System.out.println(new CnUpperCaser("123456789").getCnString());
System.out.println(new CnUpperCaser("100000000.12345").getCnString());
System.out.println(new CnUpperCaser("0.1234").getCnString());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐