念整数(5分)
题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
代码
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int num = 0;//输入的数
int k = 0;//分支判断
int i = 0,j=0;
num = in.nextInt();
if(num<0)//负数加负号变正
{
System.out.print("fu ");
num=-1*num;
}
else if(num==0) //零的情况
{
System.out.print("ling");
}
int []a= new int[1111];//数组存放分解的数字
for(i=0;num>0;i++)//分别存放数字
{
a[i]=num%10;
num=num/10;
j++;
}
j--;//从零开始,所以减一
for(;j>=0;j--)//倒序输出
{
k=a[j];
switch(k) {
case 0:
System.out.print("ling");
break;
case 1:
System.out.print("yi");
break;
case 2:
System.out.print("er");
break;
case 3:
System.out.print("san");
break;
case 4:
System.out.print("si");
break;
case 5:
System.out.print("wu");
break;
case 6:
System.out.print("liu");
break;
case 7:
System.out.print("qi");
break;
case 8:
System.out.print("ba");
break;
case 9:
System.out.print("jiu");
break;
}
if(j!=0)//除最后一位外加空格
{
System.out.print(" ");
}
}
}