标签:
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入在一行中给出一个不超过9位的非负整数。
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
813227345
iYbQdBcScWhQdBeSf
6900
gQjB
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[]dw = new String[10]; dw[1] = ""; dw[2] = "S"; dw[3] = "B"; dw[4] = "Q"; dw[5] = "W"; dw[6] = "S"; dw[7] = "B"; dw[8] = "Q"; dw[9] = "Y"; String[]num = new String[10]; num[0] = "a"; num[1] = "b"; num[2] = "c"; num[3] = "d"; num[4] = "e"; num[5] = "f"; num[6] = "g"; num[7] = "h"; num[8] = "i"; num[9] = "j"; String s = sc.next(); int len = s.length(); if(len==1){ //输入一位数 单独考虑 System.out.println(num[s.charAt(0)-48]); } else{ for(int i=0 ;i<len ;i++){ if(s.charAt(i)-48!=0){ //数位上不为0的情况 System.out.print(num[s.charAt(i)-48]+dw[len-i]); } else if(i<len-1&&i!=len-5&&(s.charAt(i)-48==0&&s.charAt(i+1)-48!=0)){//数位上是0的情况 有多个连续的0 值输出一个 System.out.print(num[s.charAt(i)-48]); } else if(len>5&&i==len-5&&s.charAt(i)-48==0){//万为是0的情况 if(len==9&&s.charAt(1)-48==0&&s.charAt(2)-48==0&&s.charAt(3)-48==0){ //一亿的情况 }else{ System.out.print("W"); } } } } } }
标签:
原文地址:http://blog.csdn.net/qq_34594236/article/details/51362775