经过测试支持到一亿
/**
* 数数字转中文 范围1-1亿
* @param val
* @return java.lang.String
* @author Administrator
* @updateAuthor: Administrator
* @date 2018/9/19 13:06
*/
public static String convertNumToUpperNum(String val){
String[] fuhao={"零","一","二","三","四","五","六","七","八","九"};
String[] danwei={"","十","百","千","万","十","百","千","亿"};
String[] vals=val.split("");
StringBuilder sb=new StringBuilder();
for (int i = 0; i < val.length(); i++) {
int num = val.charAt(i) - '0';
sb.append(fuhao[num]);
}
String[] val1=sb.toString().split("");
int j=0;
for (int i = val1.length-1; i >0; i--) {
String t=val1[i];
boolean rp=false;
if(t.equals("零")){
if(i==val1.length-1){
rp=true;
val1[i]="";
}else{
int rsum=0;
String t1=vals[i+1];
rsum+=Integer.valueOf(t1);
if(Integer.valueOf(t1)>0){
if(j==4){
val1[i]="";
}
rp=true;
}
for (int k = i; k <vals.length ; k++) {
rsum+=Integer.valueOf(t1);
}
if(rsum==0){
rp=true;
val1[i]="";
}
}
}
if(!rp){
String wan="万";
if(j==5){
for (int k = 0; k <val1.length ; k++) {
if(val1[k].indexOf("万")!=-1){
wan="";
break;
}
}
}else if(j==6){
for (int k = 0; k <val1.length ; k++) {
if(val1[k].indexOf("万")!=-1){
wan="";
break;
}
}
}else if(j==7){
for (int k = 0; k <val1.length ; k++) {
if(val1[k].indexOf("万")!=-1){
wan="";
break;
}
}
} else{
wan="";
}
if(vals.length>2){
if(Integer.valueOf(vals[vals.length-j-1])==1 && vals.length-j-1==1 &&
Integer.valueOf(vals[vals.length-j])==0 && vals.length==2){
val1[i]="";
}
if(j==1 && Integer.valueOf(vals[vals.length-j-1])==1 && vals.length==2){
val1[i]="";
}
}
val1[i]=val1[i]+danwei[j]+wan;
}
j++;
}
sb=new StringBuilder();
for (int i = 0; i < val1.length; i++) {
sb.append(val1[i]);
}
return sb.toString();
}