九位以内数字大写转换--数组

来源:互联网 发布:网络推广收费 编辑:程序博客网 时间:2024/04/30 22:19
import java.util.Scanner;
class test
{
public static void main(String[] args) 
{
//设置大写
String[] daxie={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] wei={"","十","百","千","万","拾","佰","仟","亿"};
        //输入数字
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
//求每位数的数字,最多九位
int n1=num%10;
int n2=(num/10)%10;
int n3=(num/100)%10;
int n4=(num/1000)%10;
int n5=(num/10000)%10;
int n6=(num/100000)%10;
int n7=(num/1000000)%10;
int n8=(num/10000000)%10;
int n9=(num/100000000)%10;
int[] nu1={n1,n2,n3,n4,n5,n6,n7,n8,n9} ;
//判断输入的数是几位数
int x=0;
if(n9!=0)
{
x=9;
}else if(n8!=0)
{
x=8;
}else if(n7!=0)
{
x=7;
}else if(n6!=0)
{
x=6;
}else if(n5!=0)
{
x=5;
}else if(n4!=0)
{
x=4;
}else if(n3!=0)
{
x=3;
}else if(n2!=0)
{
x=2;
}else if(n1!=0)
{
x=1;
}

System.out.println("这是一个"+x+"位数");
        //定义一个数组来接受这个数的个十百位数字,并根据x大小设置数组长度
int[] nu2=new int[x];
for(int i=0;i<x;i++)
nu2[i]=nu1[i];
   //定义一个数组来接受转换后的大写数字及位数
String[] s=new String[20];
for(int i=x-1;i>=0;i--)
{
if(nu2[i]!=0)//如果数字不为0,则正常输出大写数字和位
{
  s[i]=daxie[nu2[i]]+wei[i];
}else if(nu2[i]==0 && i!=0&&i!=4&&i!=8)//如果该位数字为0,并且不处于个位,万位,亿位,则输出零,不输出 位
{
s[i]=daxie[nu2[i]];
}else//如果该位数字为0,并且处于个位,万位,亿位,则输出位,不输出 零
{
s[i]=wei[i];
}
}


for(int i=s.length-1;i>=0;i--)
if(s[i]!=null)
System.out.print(s[i]);
System.out.println();




}

}
原创粉丝点击