输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu
字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如yi er san si
。
输入样例:
-600
输出样例:
fu liu ling ling
要解决这个问题首先要考虑对输入的字的符号的处理,我们可以先定义一个String型变量用来保存符号,如果输入的数为负数那么就可以把符号改成“fu ”,然后变为正数然后为了处理”每个数字的拼音之间用空格分开,行末没有最后的空格“这个条件就需要先求出最后一位的数字并把它转换成拼音,然后进行叠加把最后的结果加上符号就行,因为负号后要加空格,整数前没符号也没空格,所以把在符号和空格放一块,为了美观又定义了一个方法把数字转换为拼音。
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String fh="";
if(n<0)
{
fh = "fu ";
n = -n;
}
String result = "";
int last = n%10;
n=n/10;
result = intToString(last);
while(n!=0)
{
last = n%10;
n=n/10;
String str = intToString(last);
result = str+" "+result;
}
result=fh+result;
System.out.println(result);
sc.close();
}
public static String intToString(int a)
{
String r="";
switch (a) {
case 1:
r="yi";
break;
case 2:
r="er";
break;
case 3:
r="san";
break;
case 4:
r="si";
break;
case 5:
r="wu";
break;
case 6:
r="liu";
break;
case 7:
r="qi";
break;
case 8:
r="ba";
break;
case 9:
r="jiu";
break;
case 0:
r="ling";
break;
}
return r;
}
}