import java.util.Scanner;
/**
* @ClassName Conversion
* @Description TODO
* @Author m
* @Date 2022/7/28 18:17
* @Version 1.0
**/
public class Conversion {
public static void main(String[] args) {
while (true){
Scanner sc = new Scanner(System.in);
int result = sc.nextInt();
String s = conversion(result);
System.out.println(s);
}
}
public static String conversion(int i){
String s = String.valueOf(i);
StringBuilder sb =new StringBuilder();
int num = s.length();
int max=0;
StringBuilder sb1= new StringBuilder();
sb1.append(s);
int x=0;
//如果不是四的倍数,补足不够四位的位置,用0补
if (num%4!=0){
x = 4-num%4;
for (int m =0;m<x;m++){
sb1.insert(0,"0");
}
}
int sb1len=sb1.length();
int b=sb1len/4;
for (int j = 0; j < sb1len; j++) {
max++;
char c = sb1.charAt(j);
String match = match(c);
//字符串拼接
// sb = new StringBuilder();
if (x!=0){
x--;
continue;
}
if (sb.length()>0&&"零".equals(sb.substring(sb.length()-1))&&match.equals("零")){
continue;
}
sb.append(match);
if (max==4){
while (sb.length()>2&&"零".equals(sb.substring(sb.length()-1))){
sb.deleteCharAt(sb.length()-1);
}
if (b==3){
sb.append("亿");
b--;
}else if (b==2){
sb.append("万");
b--;
}
max=0;
}
if (sb.length()>0&&"零".equals(sb.substring(sb.length()-1))&&match.equals("零")){
continue;
}
if (max==1){
sb.append("千");
}else if (max==2){
sb.append("佰");
}else if (max==3){
sb.append("拾");
}
}
while (sb.length()>2&&"零".equals(sb.substring(sb.length()-1))){
sb.deleteCharAt(sb.length()-1);
}
String sbto = sb.toString();
return sbto;
}
//字符转换
public static String match(char c){
switch (c){
case '9':
return "九";
case '8':
return "八";
case '7':
return "七";
case '6':
return "六";
case '5':
return "五";
case '4':
return "四";
case '3':
return "三";
case '2':
return "二";
case '1':
return "一";
case '0':
return "零";
default:
break;
}
return null;
}
}
java 数字转大写
于 2022-08-10 15:55:05 首次发布