A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 十字路口 中级黑马   /  2013-6-6 08:22  /  1235 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 十字路口 于 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);
}
}

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
学习学习!
回复 使用道具 举报
自己解决了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马