本帖最后由 十字路口 于 2013-6-8 23:48 编辑
我写的一个程序,接收(String[] args)输入的字符,判断是否为数字,如果是就转化成中文大写,而且按位数输出就是一千万二百这样的;
程序写的差不多。就是最后输出问题啊
比如我这个会出现(一千零万零八十,一万一千一百二十零,零八)等系列零处理问题啊
那位高手看下代码解决下咯 输出在红色标记的地方
if(args1.length()>4){
String[] str1=new String[args1.length()];
for(int k=args1.length()-1;k>=0;k--){
String args2=args1.substring(k,k+1);
str1[k]=ConvertChinese(args2);
}
for(int m=0;m<args1.length()/2;m++){
String sum;
sum=str1[m];
str1[m]=str1[args1.length()-1-m];
str1[args1.length()-1-m]=sum;
}
for(int j=0;j<args1.length();j++ ){
if("零".equals(str1[j])){
if(j==4){
str1[j]="万";
continue;
}
continue;
}else{
if((j+1)%2==0&(j+1)%4!=0){
str1[j]=str1[j]+"十";
}
if(j%2==0&j%4!=0){
str1[j]=str1[j]+"百";
}
if((j+1)%4==0){
str1[j]=str1[j]+"千";
}
if(j==4){
str1[j]=str1[j]+"万";
}
}
}
for(int l=str1.length-1;l>=0;l--){
if(l>=4)
{
if("零".equals(str1[l])){
continue;}
else if("万".equals(str1[l])){
continue;
}
}
else
if("零".equals(str1[l])){
if(str1[l+1].equals(str1[l])){
continue;
}
}
System.out.print(str1[l]);
}
}
}
public String ConvertChinese(String st)
{
//"零一二三四五六七八九"
String cstr="";
Integer integerst;
integerst=Integer.parseInt(st);
int intst=integerst.intValue();
switch(intst)
{
case 0: cstr="零";break;
case 1: cstr="一";break;
case 2: cstr="二";break;
case 3: cstr="三";break;
case 4: cstr="四";break;
case 5: cstr="五";break;
case 6: cstr="六";break;
case 7: cstr="七";break;
case 8: cstr="八";break;
case 9: cstr="九";break;
}
return(cstr);
}
} |