public class Num2Ch
{
static String number = "123456789";
public static void main(String [] args){
String str = num2dao(number);
String result = result(str);
System.out.println(result);
}
/**
* 123456789 转化成 壹亿贰千叁百肆十伍万陆千柒百捌十玖
* @param str
* @return
*/
private static String result(String str) {
String re = "";
for(int i=str.length() - 1; i >= 0; i--){
String s = chr(Integer.valueOf( String.valueOf(str.charAt( i )) ));
String r = chrArr(i);
if(s == "零"){
if(r == "十") {
s = "零";
r = "";
}
if(r == "百") {
s = "零";
r = "";
}
if(r == "千") {
s = "零";
r = "";
}
if(r == "万") {
s = "万";
r = "";
}
}
re += s + r;
}
return re;
}
/**
* 把字符串倒过来 abc 转成 cba
* @param str
* @return
*/
private static String num2dao(String str) {
String s = "";
for(int i = str.length() - 1; i >= 0; i--){
s += str.charAt( i );
}
return s;
}
/**
* 表示数字的从个位到千亿位
* @param n 数字位置
* @return
*/
private static String chrArr(int n) {
String str = "";
switch(n){
case 0:
str = "";
break;
case 1:
str = "十";
break;
case 2:
str = "百";
break;
case 3:
str = "千";
break;
case 4:
str = "万";
break;
case 5:
str = "十";
break;
case 6:
str = "百";
break;
case 7:
str = "千";
break;
case 8:
str = "亿";
break;
case 9:
str = "十亿";
break;
case 10:
str = "百亿";
break;
case 11:
str = "千亿";
break;
}
return str;
}
/**
* 把阿拉伯数字 0-10 转成中文 壹-拾
* @param n 阿拉伯数字 0 - 10
* @return str 中文 壹到拾
*/
private static String chr(int n) {
String str = "";
switch(Integer.valueOf( n )){
case 0:
str = "零";
break;
case 1:
str = "壹";
break;
case 2:
str = "贰";
break;
case 3:
str = "叁";
break;
case 4:
str = "肆";
break;
case 5:
str = "伍";
break;
case 6:
str = "陆";
break;
case 7:
str = "柒";
break;
case 8:
str = "捌";
break;
case 9:
str = "玖";
break;
case 10:
str = "拾";
break;
}
return str;
}
}
123456789 转化成 壹亿贰千叁百肆十伍万陆千柒百捌十玖
最新推荐文章于 2018-03-11 17:02:51 发布