题解 | #人民币转换#

人民币转换

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("元");
	}
}


全部评论

相关推荐

点赞 评论 收藏
分享
2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务