import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String str=scanner.next();
System.out.println(convert(str));
}
public static String convert(String number){
StringBuilder sb=new StringBuilder();
String str;
String result;
int index=number.indexOf('.');
long num;
if(index!=-1){
num=Long.parseLong(number.substring(0,index));
}else{
num=Long.parseLong(number);
}
int temp;
int i=0;
String[] numTables = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
String[] levelTables = new String[]{"万", "亿"};
String[] mulTables = new String[]{"", "拾", "佰", "仟"};
String[] digitTables = new String[]{"角", "分"};
while(num>0){
temp=(int) (num%10);
if(i==4){
str=numTables[temp]+levelTables[0];
}else if(i==8){
str=numTables[temp]+levelTables[1];
i=0;
}else{
str=i<4?numTables[temp]+mulTables[i]:numTables[temp]+mulTables[i-4];
}
sb.insert(0, str);
num=num/10;
i++;
}
sb.append("元");
int t=index+1;
int j=0;
while(t!=0&&t<number.length()&&j<2){
temp=number.charAt(t)-'0';
str=numTables[temp]+digitTables[j];
sb.append(str);
t++;
j++;
}
result=sb.toString();
result=result.replaceAll("零[仟佰拾角分]", "零").replaceAll("零{2,}", "零").replaceAll("零亿", "亿")
.replaceAll("零万", "万").replaceAll("亿万", "亿零")
.replaceAll("零{2,}", "零");
if(result.endsWith("零")){
result=result.substring(0,result.length()-1);
}
if(result.startsWith("壹拾")){
result=result.substring(1);
}
if(!result.endsWith("角")&&!result.endsWith("分")){
result+="整";
}
return "人民币"+result;
}
}
数字到大写人民币转换
最新推荐文章于 2022-12-09 12:05:29 发布