编写一个程序,输入一个10000以内的浮点数,xxxx.xx或xxxx.x的形式,然后将该浮点数转化成像读取人民币一样的字符串,打印出来,例如:将1006.33转换为壹仟零六元三角三分。
package mydemo;
import java.util.Scanner;
/**
* 编写一个程序,输入一个10000以内的浮点数,xxxx.xx或xxxx.x的形式,然后将该浮点数转化成
* 像读取人民币一样的字符串,打印出来,例如:将1006.33转换为壹仟零六元三角三分
*
* @author trust the process
*
*/
public class Ttp {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入符合要求的浮点数,格式为:(xxxx.xx或者xxxx.x,且首个数字不为0):");
double money = 0.0;
money = s.nextDouble();
while(money>=10000.00 || money<1000.00){
System.out.println("格式不正确!请重新输入:");
money = s.nextDouble();
}
test(money);
}
public static void test(double money) {
String moneyStr = money + "";
int firstDian = moneyStr.indexOf('.');
int strLength = moneyStr.length();
int letterNum = strLength - (firstDian + 1);
if (firstDian == 4) {
test3(moneyStr.charAt(0));
System.out.print("仟");
if (moneyStr.charAt(1) == '0' && moneyStr.charAt(2) == '0' && moneyStr.charAt(3) == '0') {
} else if (moneyStr.charAt(1) == '0' && moneyStr.charAt(2) == '0') {
System.out.print("零");
test3(moneyStr.charAt(3));
} else if (moneyStr.charAt(2) == '0' && moneyStr.charAt(3) == '0') {
test3(moneyStr.charAt(1));
System.out.print("佰");
} else if (moneyStr.charAt(1) == '0' && moneyStr.charAt(3) == '0') {
System.out.print("零");
test3(moneyStr.charAt(2));
System.out.print("拾");
} else if (moneyStr.charAt(1) == '0') {
System.out.print("零");
test3(moneyStr.charAt(2));
System.out.print("拾");
test3(moneyStr.charAt(3));
} else if (moneyStr.charAt(2) == '0') {
test3(moneyStr.charAt(1));
System.out.print("佰");
System.out.print("零");
test3(moneyStr.charAt(3));
} else if (moneyStr.charAt(3) == '0') {
test3(moneyStr.charAt(1));
System.out.print("佰");
test3(moneyStr.charAt(2));
System.out.print("拾");
} else {
test3(moneyStr.charAt(1));
System.out.print("佰");
test3(moneyStr.charAt(2));
System.out.print("拾");
test3(moneyStr.charAt(3));
}
System.out.print("元");
}
if (strLength == 6) {
if (moneyStr.charAt(firstDian + 1) == '0') {
System.out.print("整");
} else {
System.out.print("零");
test3(moneyStr.charAt(firstDian + 1));
System.out.print("角");
}
} else if (strLength > 6) {
if (moneyStr.charAt(firstDian + 1) == '0' && moneyStr.charAt(firstDian + 2) == '0') {
} else if (moneyStr.charAt(firstDian + 1) == '0') {
System.out.print("零");
test3(moneyStr.charAt(firstDian + 2));
System.out.print("分");
}else {
test3(moneyStr.charAt(firstDian + 1));
System.out.print("角");
test3(moneyStr.charAt(firstDian + 2));
System.out.print("分");
}
}
}
public static void test3(char myChar) {
if (myChar == '1') {
System.out.print("壹");
} else if (myChar == '2') {
System.out.print("贰");
} else if (myChar == '3') {
System.out.print("叁");
} else if (myChar == '4') {
System.out.print("肆");
} else if (myChar == '5') {
System.out.print("伍");
} else if (myChar == '6') {
System.out.print("陆");
} else if (myChar == '7') {
System.out.print("柒");
} else if (myChar == '8') {
System.out.print("捌");
} else if (myChar == '9') {
System.out.print("玖");
} else if (myChar == '0') {
System.out.print("零");
}
}
}