首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

转化十亿之内的人民币数字为大写格式

2012-10-29 
转化十亿以内的人民币数字为大写格式import java.io.BufferedReaderimport java.io.IOExceptionimport j

转化十亿以内的人民币数字为大写格式

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;
?}

}

热点排行