转化十亿以内的人民币数字为大写格式
2013-05-17 17:03
387 查看
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RMBUpper {
private final String []dws=new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿"};
private final String []szs=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","镹"};
private String qs;
private String result="";
/**
* 功能:转化十亿以内的人民币数字为大写格式
* @param args
*/
public static void main(String[] args) {
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
String r="0";
do{
System.out.println("请输入要转换为大写的十亿以内的正整数:");
try {
r=in.readLine();
r=Integer.parseInt(r)+"";
} catch (IOException e) {
e.printStackTrace();
}
}
while(!(Integer.parseInt(r)>0&&Integer.parseInt(r)<1000000000));
RMBUpper rmb=new RMBUpper(r+"");
System.out.println(rmb.getUpper());
}
public String getUpper() {
// TODO 获得输入的大写形式
this.com();
return this.result;
}
private void com() {
// TODO 开始计算
this.turnNumNotZero();
this.deleteTooMuchZero();
this.turnZero();
}
private void turnZero() {
// TODO 将0转换为零
if(this.result.lastIndexOf("0")==this.result.length()-1){//处理最后是零的情况
this.result=this.result.substring(0,this.result.length()-1);
}
this.result=this.result.replaceAll("0", this.szs[0]);
}
private void deleteTooMuchZero() {
// TODO 删除多余的零
if(this.result.indexOf("00")==-1)return;
this.result=this.result.replace("00", "0");
this.deleteTooMuchZero();
}
private void turnNumNotZero() {
// TODO 将非零数字转换为大写
for(int i=0;i<this.qs.length();i++){
int index=Integer.parseInt(this.qs.charAt(i)+"");
if(index!=0){
this.result+=this.szs[index]+this.dws[this.qs.length()-i-1];
}else{
this.result+="0";
}
}
}
public RMBUpper(String qs) {
this.qs = qs;
}
}
import java.io.IOException;
import java.io.InputStreamReader;
public class RMBUpper {
private final String []dws=new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿"};
private final String []szs=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","镹"};
private String qs;
private String result="";
/**
* 功能:转化十亿以内的人民币数字为大写格式
* @param args
*/
public static void main(String[] args) {
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
String r="0";
do{
System.out.println("请输入要转换为大写的十亿以内的正整数:");
try {
r=in.readLine();
r=Integer.parseInt(r)+"";
} catch (IOException e) {
e.printStackTrace();
}
}
while(!(Integer.parseInt(r)>0&&Integer.parseInt(r)<1000000000));
RMBUpper rmb=new RMBUpper(r+"");
System.out.println(rmb.getUpper());
}
public String getUpper() {
// TODO 获得输入的大写形式
this.com();
return this.result;
}
private void com() {
// TODO 开始计算
this.turnNumNotZero();
this.deleteTooMuchZero();
this.turnZero();
}
private void turnZero() {
// TODO 将0转换为零
if(this.result.lastIndexOf("0")==this.result.length()-1){//处理最后是零的情况
this.result=this.result.substring(0,this.result.length()-1);
}
this.result=this.result.replaceAll("0", this.szs[0]);
}
private void deleteTooMuchZero() {
// TODO 删除多余的零
if(this.result.indexOf("00")==-1)return;
this.result=this.result.replace("00", "0");
this.deleteTooMuchZero();
}
private void turnNumNotZero() {
// TODO 将非零数字转换为大写
for(int i=0;i<this.qs.length();i++){
int index=Integer.parseInt(this.qs.charAt(i)+"");
if(index!=0){
this.result+=this.szs[index]+this.dws[this.qs.length()-i-1];
}else{
this.result+="0";
}
}
}
public RMBUpper(String qs) {
this.qs = qs;
}
}
相关文章推荐
- 人民币金额中数字格式转化为中文的人民币大写格式的全部代码
- php将数字转化为中文大写人民币格式
- 在word中如何把数字转化成人民币大写?
- PHP将数字金额转化为中文人民币大写
- 数字变成大写的类,把人民币转化为大写汉字
- 将人民币的数字表示转化成大写表示(C#版)
- 将阿拉伯数字转化成大写的人民币数字
- 两位数字金额转化为大写格式
- 将数字字符串人民币转化成大写字符串人民币
- 两位数字金额转化为大写格式
- 将人民币的数字表示转化成大写表示(C#版)
- 将阿拉伯数字转化为人民币的大写
- 将人民币的数字表示转化成大写表示
- PHP将数字金额转化为中文人民币大写
- 人民币金额大写 在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误
- 数字变成大写的类,把人民币转化为大写汉字
- 将人民币的数字表示转化成大写表示(C#版)
- 数字转换成人民币大写格式(带界面)
- 将人民币的数字表示转化成大写表示(VB.NET版) (原chenyu001C#版)