数字转大写程序
来源:互联网 发布:mac企业邮箱登陆界面 编辑:程序博客网 时间:2024/04/30 11:24
最近看到很多人都问 如何写一个数字转大写的程序,也就是把"123456789"转为 壹亿贰千叁百肆十伍万陆千柒百捌十玖 的程序,很多人都只提供代码,不提供解释,我这里自己也写了一个,有不足之处请大家提出:
import java.io.*;
class upper...{
public static void main(String[] args) throws IOException...{
String[] big=new String[]...{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};
String[] bit=new String[]...{"","十","百","千","万","十万","百万","千万","亿"};
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入要转换的数字:");
String rl=br.readLine();
//取数字的位数
int weishu=rl.length() ;
if(weishu>9)...{
System.out.println("超出计算范围");
}
//创建StringBuffer 来存储结果
StringBuffer result=new StringBuffer();
//把数字转换成StringBuffer
StringBuffer sb=new StringBuffer(rl);
//反转数字
sb=sb.reverse();
//再转换成int
int rl1=sb2int(sb);
//建立循环
for(int i=0;i<rl.length();i++)...{
//数字取余数 %10
int tmp2=rl1%10;
//数字减去最后一位
rl1-=tmp2;
//数字除以10
rl1=rl1/10;
//位数减1
weishu-=1;
//存到结果里
result=result.append(big[tmp2]+bit[weishu]);
}
System.out.print("输出大写为:");
String rs=result.toString();
System.out.println(prossstr(rs));
}
//静态方法,把StringBuffer转换成Int
static int sb2int(StringBuffer sb)...{
String tmp=new String(sb);
int tmp2=Integer.parseInt(tmp);
return tmp2;
}
//处理结果
static String prossstr(String result)...{
//处理万到亿之间的数
int lg=result.length();
if(lg!=0&&lg>9&&lg<19)...{
result=result.replaceAll("万","");
StringBuffer sbresult=new StringBuffer(result);
sbresult=sbresult.reverse();
sbresult=sbresult.insert(7,'万');
sbresult=sbresult.reverse();
return sbresult.toString();
//处理亿以上
}else if(lg!=0&&lg>19)...{
result=result.replaceAll("万","");
result=result.replaceAll("亿","");
StringBuffer sbresult=new StringBuffer(result);
sbresult=sbresult.reverse();
sbresult=sbresult.insert(7,'万');
sbresult=sbresult.insert(15,'亿');
sbresult=sbresult.reverse();
return sbresult.toString();
}
else...{
return result;
}
}
}
class upper...{
public static void main(String[] args) throws IOException...{
String[] big=new String[]...{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};
String[] bit=new String[]...{"","十","百","千","万","十万","百万","千万","亿"};
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入要转换的数字:");
String rl=br.readLine();
//取数字的位数
int weishu=rl.length() ;
if(weishu>9)...{
System.out.println("超出计算范围");
}
//创建StringBuffer 来存储结果
StringBuffer result=new StringBuffer();
//把数字转换成StringBuffer
StringBuffer sb=new StringBuffer(rl);
//反转数字
sb=sb.reverse();
//再转换成int
int rl1=sb2int(sb);
//建立循环
for(int i=0;i<rl.length();i++)...{
//数字取余数 %10
int tmp2=rl1%10;
//数字减去最后一位
rl1-=tmp2;
//数字除以10
rl1=rl1/10;
//位数减1
weishu-=1;
//存到结果里
result=result.append(big[tmp2]+bit[weishu]);
}
System.out.print("输出大写为:");
String rs=result.toString();
System.out.println(prossstr(rs));
}
//静态方法,把StringBuffer转换成Int
static int sb2int(StringBuffer sb)...{
String tmp=new String(sb);
int tmp2=Integer.parseInt(tmp);
return tmp2;
}
//处理结果
static String prossstr(String result)...{
//处理万到亿之间的数
int lg=result.length();
if(lg!=0&&lg>9&&lg<19)...{
result=result.replaceAll("万","");
StringBuffer sbresult=new StringBuffer(result);
sbresult=sbresult.reverse();
sbresult=sbresult.insert(7,'万');
sbresult=sbresult.reverse();
return sbresult.toString();
//处理亿以上
}else if(lg!=0&&lg>19)...{
result=result.replaceAll("万","");
result=result.replaceAll("亿","");
StringBuffer sbresult=new StringBuffer(result);
sbresult=sbresult.reverse();
sbresult=sbresult.insert(7,'万');
sbresult=sbresult.insert(15,'亿');
sbresult=sbresult.reverse();
return sbresult.toString();
}
else...{
return result;
}
}
}
- 数字转大写程序
- 数字转大写数字
- 数字转中文数字大写
- 数字小写转大写
- 数字转货币大写
- 数字小写转大写
- 数字转人民币大写
- 数字转大写汉字
- 数字转货币大写
- C#数字转大写
- 数字转人民币大写
- 数字小写转大写
- 数字金额转大写
- 数字小写转大写
- 数字小写转大写
- javascript数字转大写
- 数字转RMB大写
- JS数字转大写
- 在JSP上传图片前预览图片
- C#的访问修饰符
- 特效:在网页中显示可拖动的月历
- 屏蔽在页面中输入筐esc按键
- C#中的一个条件生成器类。
- 数字转大写程序
- 在南京时记的日记
- 是否可以使用document_innerHTML取得代码
- test
- Ado下事务的操作方法
- 使用Struts上传文件,用FormFile取得上传文件的本地绝对路径
- 使用Struts的Token机制解决表单的重复提交
- 2007-07-16
- #include