题解 | #人民币转换#
人民币转换
http://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b
import java.util.Scanner;
public class Main{
private static String[] gewei=new String[]{"","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
private static String[] danwei=new String[]{"","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"};
public static void main(String[] args){
Scanner in= new Scanner(System.in);
//Insert Your Code Here.
String s=in.nextLine();
String[] str=s.split("\\.");
char[] before=str[0].toCharArray();
char[] after=str[1].toCharArray();
System.out.print("人民币");
readBefore(before);
readAfter(after);
in.close();
}
static void readAfter(char[] after){
if(after[0]=='0'&&after[1]=='0'){
System.out.print("整");
return;
}
if(after[0]!='0')
System.out.print(gewei[after[0]-'0']+"角");
if(after[1]!='0')
System.out.print(gewei[after[1]-'0']+"分");
}
static void readBefore(char[] before){
int length=before.length;
if(before[0]=='0'&&length==1||length==0) return;
for(int i=0;i<length;i++){
StringBuilder sb=new StringBuilder();
//0单独判断
if(before[i]=='0'&&i+1<length&&before[i+1]>='1'&&before[i+1]<='9')
sb.append("零");
//其它情况下的0直接放弃
else if(before[i]!='0'){
//最高位不是1
if(!(i==0&&before[i]=='1'&&(length-i)%4==2))
sb.append(gewei[before[i]-'0']);
sb.append(danwei[length-i-1]);
}
System.out.print(sb.toString());
sb.delete(0, sb.length());
}
System.out.print("元");
}
}