public static String CastToChineseNumber(String num) {
String CNum = num;// 設置將要返回的數字等於輸入的數字
if (CheckNum(CNum)) {
switch (num.length()) {
case 0:// 如果沒有輸入數字
CNum = "N/A"; // 未知
break;
case 1:// 如果是1位的數字
CNum = GetCNum(num);
break;
case 2:// 2位的數字
if (num.substring(1).equals("0"))// 處理 10,20,30
90這類數字{
if (num.substring(0, 1).equals("1")) {
CNum = "十";
} else {
CNum = GetCNum(num.substring(0, 1)) + "十";
}
} else if (num.substring(0, 1).equals("1"))// 處理11轉換為 十一 而不是一十一
{
CNum = "十" + GetCNum(num.substring(1));
} else {
CNum = GetCNum(num.substring(0, 1)) + "十"
+ GetCNum(num.substring(1));
}
break;
case 3:// 如果是3位的數字
CNum = GetCNum(num.substring(0, 1)) + "百"
+ GetCNum(num.substring(1, 2)) + "十"
+ GetCNum(num.substring(2));
break;
default:
break;
}
}
return CNum;
}
public static boolean CheckNum(String num) {
List<String> al = new ArrayList<String>();
String[] ss = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
al = Arrays.asList(ss);
// String Num = "0123456789";
char[] nums = num.toCharArray();
boolean isNum = false;
for (char n : nums) {
if (al.contains(String.valueOf(n))) {
isNum = true;
} else {
isNum = false;
break;
}
}
return isNum;
}
/**
* 獲取數字對應的漢字
*
* @param num
* 輸入的數字
* @return 返回的數字
*/
public static String GetCNum(String num) {
String Cnum = "";
switch (Integer.parseInt(num)) {
case 0:
Cnum = "零";
break;
case 1:
Cnum = "一";
break;
case 2:
Cnum = "二";
break;
case 3:
Cnum = "三";
break;
case 4:
Cnum = "四";
break;
case 5:
Cnum = "五";
break;
case 6:
Cnum = "六";
break;
case 7:
Cnum = "七";
break;
case 8:
Cnum = "八";
break;
case 9:
Cnum = "九";
break;
}
return Cnum;
}

浙公网安备 33010602011771号