一、思路(前提输入的值是符合要求的)
1、将特殊的字符如“800’提取出来放在一个字符串数组里
2、将需要转换的数字字符串以 点 分割成两个字符串数组,此时该数组下标0存取的是整数部分,1存取的是小数部分
3、遍历该数组,判断小标0和下标一,分别将下标0和下标1字符串转成整数和小数数组
4、此时的整数数组的的长度就可以判断最高位
5、根据不同的位数来匹配数字对应的汉字 再拼接
2、代码:
package Test;
public class Test {
public static void main(String[] args) {
// System.out.println("请输入一个万元以下的数字且小数点为两位:");
// Scanner scan = new Scanner(System.in);
// String str1 = scan.next();
// System.out.println("输入的数据为:" + str1);
String[] condition = new String[]{"9000","8000","7000","6000","5000","4000","3000","2000","1000"
,"900","800","700","600","500","400","300","200","100"
,"90","80","70","60","50","40","30","20","10"};
String str2 = "100";
System.out.println(str2);
String[] split = str2.split("\\.");
String s = split[0];
char[] zhengshu = new char[0];
char[] xiaoshu = new char[0];
for (int i=0;i<split.length;i++){
if (i==0){
zhengshu = split[i].toCharArray();
}
if(i==1){
xiaoshu = split[i].toCharArray();
}
}
if (split.length==1){//说明只有整数部分
for (int i=0;i<condition.length;i++){
if (condition[i]==s){//就输出最高位+园整
if(zhengshu.length==4) { //则重千位开始
char s1 = zhengshu[0];
qian(s1);
System.out.println("圆整");
}if (zhengshu.length==3){
char s1 = zhengshu[0];
bai(s1);
System.out.println("圆整");
}if (zhengshu.length==2){
char s1 = zhengshu[0];
shi(s1);
System.out.println("圆整");
}if (zhengshu.length==1){
char s1 = zhengshu[0];
ge(s1);
System.out.println("圆整");
}
}
}
}else if (split.length==2){
System.out.println("拼接开始---------:");
if(zhengshu.length==4){ //则重千位开始
char s1 = zhengshu[0];
char s2 = zhengshu[1];
char s3 = zhengshu[2];
char s4 = zhengshu[3];
if (s2 == '0' && s3 == '0'){
qian(s1);
System.out.print("零");
ge(s4);
}else if (s3=='0' && s4=='0'){
qian(s1);
bai(s2);
}else {
qian(s1);
bai(s2);
shi(s3);
ge(s4);
}
}else if (zhengshu.length==3 ){//百位开始
char s1 = zhengshu[0];
char s2 = zhengshu[1];
char s3 = zhengshu[2];
if (s2 == '0' && s3 == '0'){
bai(s1);
}else {
bai(s1);
shi(s2);
ge(s3);
}
}else if (zhengshu.length==2){
char s1 = zhengshu[0];
char s2 = zhengshu[1];
shi(s1);
ge(s2);
}if (zhengshu.length==1){
char s1 = zhengshu[0];
ge(s1);
}
System.out.print("圆");
//System.out.println("小数部分:");
if (xiaoshu.length==2){
char s1 = xiaoshu[0];
char s2 = xiaoshu[1];
jiao(s1);
fen(s2);
}else if (xiaoshu.length==1){
char s1 = xiaoshu[0];
jiao(s1);
}
}
}
//千位
public static void qian(char qian){
switch (qian){
case '1' :
System.out.print("壹仟");
break;
case '2' :
System.out.print("贰仟");
break;
case '3' :
System.out.print("叁仟");
break;
case '4' :
System.out.print("肆仟");
break;
case '5' :
System.out.print("伍仟");
break;
case '6' :
System.out.print("陆仟");
break;
case '7' :
System.out.print("柒仟");
break;
case '8' :
System.out.print("捌仟");
break;
case '9' :
System.out.print("玖仟");
break;
}
}
//百位
public static void bai(char bai){
switch (bai) {
case '0':
System.out.print("零");
break;
case '1':
System.out.print("壹佰");
break;
case '2':
System.out.print("贰佰");
break;
case '3':
System.out.print("叁佰");
break;
case '4':
System.out.print("肆佰");
break;
case '5':
System.out.print("伍佰");
break;
case '6':
System.out.print("陆佰");
break;
case '7':
System.out.print("柒佰");
break;
case '8':
System.out.print("捌佰");
break;
case '9':
System.out.print("玖佰");
break;
}
}
//十位
public static void shi(char shi){
switch (shi) {
case '0':
System.out.print("零");
break;
case '1':
System.out.print("壹拾");
break;
case '2':
System.out.print("贰拾");
break;
case '3':
System.out.print("叁拾");
break;
case '4':
System.out.print("肆拾");
break;
case '5':
System.out.print("伍拾");
break;
case '6':
System.out.print("陆拾");
break;
case '7':
System.out.print("柒拾");
break;
case '8':
System.out.print("捌拾");
break;
case '9':
System.out.print("玖拾");
break;
}
}
//个位
public static void ge(char ge){
switch (ge) {
case '1':
System.out.print("壹");
break;
case '2':
System.out.print("贰");
break;
case '3':
System.out.print("叁");
break;
case '4':
System.out.print("肆");
break;
case '5':
System.out.print("伍");
break;
case '6':
System.out.print("陆");
break;
case '7':
System.out.print("柒");
break;
case '8':
System.out.print("捌");
break;
case '9':
System.out.print("玖");
break;
}
}
//角
public static void jiao(char jiao){
switch (jiao) {
case '0':
break;
case '1':
System.out.print("壹角");
break;
case '2':
System.out.print("贰角");
break;
case '3':
System.out.print("叁角");
break;
case '4':
System.out.print("肆角");
break;
case '5':
System.out.print("伍角");
break;
case '6':
System.out.print("陆角");
break;
case '7':
System.out.print("柒角");
break;
case '8':
System.out.print("捌角");
break;
case '9':
System.out.print("玖角");
break;
}
}
//分
public static void fen(char fen){
switch (fen) {
case '0':
break;
case '1':
System.out.print("壹分");
break;
case '2':
System.out.print("贰分");
break;
case '3':
System.out.print("叁分");
break;
case '4':
System.out.print("肆分");
break;
case '5':
System.out.print("伍分");
break;
case '6':
System.out.print("陆分");
break;
case '7':
System.out.print("柒分");
break;
case '8':
System.out.print("捌分");
break;
case '9':
System.out.print("玖分");
break;
}
}
}