package com.maoyan.luzelong.MathLogic;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Transform {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String in = scanner.nextLine();
String result = transform(in);
System.out.println(result);
}
public static String transform(String input){
String result = "";
Map<String,String> intmap = new HashMap<>();
intmap.put("0","零");
intmap.put("1","壹");
intmap.put("3","叁");
intmap.put("2","贰");
intmap.put("4","肆");
intmap.put("5","伍");
intmap.put("6","陆");
intmap.put("7","柒");
intmap.put("8","捌");
intmap.put("9","玖");
intmap.put("10","拾");
//ImmutableMap.<String,String> builder().put("0","零").put("1","壹").put("2","贰").put("3","叁")
// .put("4","肆").put("5","伍").put("6","陆").put("7","柒").put("8","捌").put("9","玖").put("10","拾").build();
boolean flag = true;
for (int i=0;i<input.length();i++){
int last = (input.length()-1-i) % 4;
if (input.charAt(i)=='0' && last == 0 ) {
if (flag){
flag = false;
result += getUnit(input.length(),i);
}
continue;
}
if (input.charAt(i)=='0' && last ==1 && input.charAt(i+1)=='0') continue;
if (input.charAt(i)=='0' && last ==2 && input.charAt(i+1)=='0' && input.charAt(i+2)=='0') continue;
if (input.charAt(i)=='0' && last ==3 && input.charAt(i+1)=='0' && input.charAt(i+2)=='0' && input.charAt(i+3)=='0') continue;
result += intmap.get(""+input.charAt(i));
if (input.charAt(i)=='0') continue;
result += getUnit(input.length(),i);
}
result += "圆整";
return result;
}
public static String getUnit(int length,int index){
int lastIndex = length - index -1 ;
if (lastIndex % 4 == 1){
return "拾";
}
if (lastIndex % 4 == 2 ){
return "佰";
}
if (lastIndex % 4 ==3 ){
return "仟";
}
if (lastIndex % 4 == 0 ) {
if (lastIndex == 4){
return "万";
}
if (lastIndex == 8 ){
return "亿";
}
}
return "";
}
}
数字转汉字大写
最新推荐文章于 2024-07-21 22:27:18 发布