直接上代码
import java.util.*;
import java.io.*;
public class Exam4{
private static char[] data = new char[]{'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
private static char[] units = new char[]{'元','拾','佰','仟','万','拾','佰','仟','亿'};
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
float a = sc.nextFloat();
System.out.println(getStringByNum(a));
}
public static String getStringByNum(float a){
StringBuilder sb = new StringBuilder("");
String s1 = String.format("%.2f",a);
String[] s2 = s1.split("\\.");
String s3 = s2[0];
String s4 = s2[1];
int i1 = Integer.parseInt(s3);
int i2 = Integer.parseInt(s4);
int jiao1 = i2/10;
int fen1 = i2-jiao1*10;
String jiao = data[jiao1]+"角";
String fen = data[fen1]+"分";
sb.append(getStringBuilder(i1));
sb.append(jiao);
sb.append(fen);
return sb.toString();
}
public static StringBuilder getStringBuilder(int i1){
StringBuilder sb = new StringBuilder("");
if(i1==0){
sb.append("零元");
return sb;
}
int count=0;
int j=0;
while(i1!=0){
int number = i1%10;
System.out.println(number+"=======number");
while(j!=0&&j!=1){
if(number==0){
char c = '零';
if(c==sb.charAt(0)){
break;
}else{
sb.insert(0,"零");
}
}
break;
}
if(j==0&&number==0){
sb.insert(0,"元");
j++;
}
if(number!=0){
j=j+2;
System.out.println(count+"===count");
sb.insert(0,units[count]);
sb.insert(0, data[number]);
}
i1 /= 10;
count++;
}
return sb;
}
}
在判断中间要不要加零的地方我觉得太麻烦了,有没有大哥帮我改下代码,有地方是百度来的.忘记抄的谁的了