import java.util.Scanner;
import java.util.regex.Pattern;
public class Demo {
public static String result = "";
public static boolean a = true;
public static boolean b = true;
public static void main(String[] args) {
String str = "100000";
str = "1005000";
str ="10010010";
str="1003";
str="110";
str ="10000";
str ="1000000";
str = "1000500";
str = "10100010";
str="1100010";
str="101010101";
str="1005005";
str="1000500";
str="10500500";
System.out.println("请输入一个数字:");
str = new Scanner(System.in).next();
// for (int i = 0; i < 999999999; i++) {
// if(Pattern.matches("^[01]*$",""+i)){
step(str+"");
if(b&&result.length()<=3&& result.indexOf("一十")==0){
System.out.println(result.indexOf("一十")+"^^");
result = result.replace("一十","十");
}
result +="*****";
System.out.println(result);
result="";
a=true;
b=true;
// }
// }
}
public static void step(String str) {
if (str.length() > 8) {
addNumber(str.substring(0, 1));
result += "亿";
b = false;
step(str.substring(1));
} else if (str.length() > 4) {
addUnit1(str.substring(0, str.length() - 4));
b = false;
step(str.substring(str.length() - 4));
} else if(str.length()>0){
addUnit2(str);
}
}
public static void addNumber(String str) {
int temp = Integer.parseInt(str);
switch (temp) {
case 0:
if (a) {
result += "零";
a = false;
return;
}
a = false;
return;
case 1:
result += "一";
break;
case 2:
result += "二";
break;
case 3:
result += "三";
break;
case 4:
result += "四";
break;
case 5:
result += "五";
break;
case 6:
result += "六";
break;
case 7:
result += "七";
break;
case 8:
result += "八";
break;
case 9:
result += "九";
break;
default:
break;
}
a = true;
}
public static void addUnit1(String str) {
for (int i = 0; i < str.length(); i++) {
if (isFourZero(str.substring(i))&&result.length()>0&&!result.substring(result.length()-1).equals("亿")) {
result += "万";
result+="零";
a=false;
return;
}
String ch = str.substring(i, i + 1);
if (i == 0) {
a = true;
}
addNumber(ch);
addUnit(a, i, str.length());
}
result += "万";
a = true;
}
public static void addUnit2(String str) {
if (result.length()<=4&&result.length() >= 3
&& result.indexOf("一十")==0) {
result = result.replace("一十","十");
}
if (isFourZero(str) && b == false) {
if(result.substring(result.length()-1).equals("零")){
result = result.substring(0, result.length() - 1);
}
return;
}
for (int i = 0; i < str.length(); i++) {
if (isFourZero(str.substring(i))) {
return;
}
String ch = str.substring(i, i + 1);
addNumber(ch);
addUnit(a, i, str.length());
}
}
public static void addUnit(boolean n, int index, int length) {
if (n == false) {
return;
}
switch (index + (4 - length)) {
case 0:
result += "千";
break;
case 1:
result += "百";
break;
case 2:
result += "十";
break;
case 3:
result += "";
break;
default:
break;
}
}
public static boolean isFourZero(String str) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.substring(i, i + 1).equals("0")) {
count++;
}
}
if (count == str.length()) {
return true;
}
return false;
}
}
将数字10020001转换成大写读法
最新推荐文章于 2025-08-14 10:16:47 发布