将一个数字转化成中文输出
2009-10-27 22:30
232 查看
import java.util.*;
public
class RmbConvert {
public
void convertToCapital(double money){
String[] capitalRmb=new String[14];
for(int i=0;i<capitalRmb.length;i++){
int j=(int)((money*100)%10);
money/=10;
switch(j){
case
0: capitalRmb[i]="零";break;
case
1:capitalRmb[i]="壹";break;
case
2:capitalRmb[i]="贰";break;
case
3:capitalRmb[i]="叁";break;
case
4:capitalRmb[i]="肆";break;
case
5:capitalRmb[i]="伍";break;
case
6:capitalRmb[i]="陆";break;
case
7:capitalRmb[i]="柒";break;
case
8:capitalRmb[i]="捌";break;
case
9:capitalRmb[i]="玖";break;
}
}
String[] str=new String[]{
"仟","百","拾","亿
","仟","百","拾","万
","仟","百","拾","元
","角","分"
};
int init=0;
while(capitalRmb[capitalRmb.length-1-init]=="零"){
init++;
}
for(int i=init;i<str.length;i++){
if(capitalRmb[capitalRmb.length-1-i]=="零"&&str[i]!="角"&&str[i]!="分"){
System.out.print(capitalRmb[capitalRmb.length-1-i]);
}else
System.out.print(capitalRmb[capitalRmb.length-1-i]+str[i]);
}
}
public
void convertToLower(String money){
char[] c=money.toCharArray();
double[] num=new
double[c.length/2];
int j=0;
for(int i=0;i<c.length;i+=2){
double d=num.length-3-j;
switch(c[i]){
case
'零':num[j++]=(0*Math.pow(10.0,d));break;
case
'壹':num[j++]=(1*Math.pow(10.0,d));break;
case
'贰':num[j++]=(2*Math.pow(10.0,d));break;
case
'叁':num[j++]=(3*Math.pow(10.0,d));break;
case
'肆':num[j++]=(4*Math.pow(10.0,d));break;
case
'伍':num[j++]=(5*Math.pow(10.0,d));break;
case
'陆':num[j++]=(6*Math.pow(10.0,d));break;
case
'柒':num[j++]=(7*Math.pow(10.0,d));break;
case
'捌':num[j++]=(8*Math.pow(10.0,d));break;
case
'玖':num[j++]=(9*Math.pow(10.0,d));break;
}
}
double init=0;
for(int i=0;i<num.length;i++){
init+=num[i];
}
System.out.print(init);
}
public
static void main(String[] args) {
System.out.println("please enter the lower momey");
RmbConvert rmb=new RmbConvert();
Scanner sca=new Scanner(System.in);
Double money=sca.nextDouble();
System.out.println("convert to Capital");
rmb.convertToCapital(money);
System.out.println();
System.out.println("convert to lower");
Scanner sc=new Scanner(System.in);
String str=sc.next();
rmb.convertToLower(str);
}
}
public
class RmbConvert {
public
void convertToCapital(double money){
String[] capitalRmb=new String[14];
for(int i=0;i<capitalRmb.length;i++){
int j=(int)((money*100)%10);
money/=10;
switch(j){
case
0: capitalRmb[i]="零";break;
case
1:capitalRmb[i]="壹";break;
case
2:capitalRmb[i]="贰";break;
case
3:capitalRmb[i]="叁";break;
case
4:capitalRmb[i]="肆";break;
case
5:capitalRmb[i]="伍";break;
case
6:capitalRmb[i]="陆";break;
case
7:capitalRmb[i]="柒";break;
case
8:capitalRmb[i]="捌";break;
case
9:capitalRmb[i]="玖";break;
}
}
String[] str=new String[]{
"仟","百","拾","亿
","仟","百","拾","万
","仟","百","拾","元
","角","分"
};
int init=0;
while(capitalRmb[capitalRmb.length-1-init]=="零"){
init++;
}
for(int i=init;i<str.length;i++){
if(capitalRmb[capitalRmb.length-1-i]=="零"&&str[i]!="角"&&str[i]!="分"){
System.out.print(capitalRmb[capitalRmb.length-1-i]);
}else
System.out.print(capitalRmb[capitalRmb.length-1-i]+str[i]);
}
}
public
void convertToLower(String money){
char[] c=money.toCharArray();
double[] num=new
double[c.length/2];
int j=0;
for(int i=0;i<c.length;i+=2){
double d=num.length-3-j;
switch(c[i]){
case
'零':num[j++]=(0*Math.pow(10.0,d));break;
case
'壹':num[j++]=(1*Math.pow(10.0,d));break;
case
'贰':num[j++]=(2*Math.pow(10.0,d));break;
case
'叁':num[j++]=(3*Math.pow(10.0,d));break;
case
'肆':num[j++]=(4*Math.pow(10.0,d));break;
case
'伍':num[j++]=(5*Math.pow(10.0,d));break;
case
'陆':num[j++]=(6*Math.pow(10.0,d));break;
case
'柒':num[j++]=(7*Math.pow(10.0,d));break;
case
'捌':num[j++]=(8*Math.pow(10.0,d));break;
case
'玖':num[j++]=(9*Math.pow(10.0,d));break;
}
}
double init=0;
for(int i=0;i<num.length;i++){
init+=num[i];
}
System.out.print(init);
}
public
static void main(String[] args) {
System.out.println("please enter the lower momey");
RmbConvert rmb=new RmbConvert();
Scanner sca=new Scanner(System.in);
Double money=sca.nextDouble();
System.out.println("convert to Capital");
rmb.convertToCapital(money);
System.out.println();
System.out.println("convert to lower");
Scanner sc=new Scanner(System.in);
String str=sc.next();
rmb.convertToLower(str);
}
}
相关文章推荐
- 将一个键盘输入的数字转化成中文输出。(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)
- 将一个键盘输入的数字转化成中文输出
- java实现将一个键盘输入的阿拉伯数字转化成中文输出
- 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七)?
- c#如实现将一个数字转化为其他进制字符串输出
- P123.36(请编写一个函数printdate(int year,int month,int day ),将输入的三个数字转化成英语纪年输出。)
- 输入阿拉伯数字(整数),输出相应的中文(美团网2014年9月16日笔试题目之中的一个)
- 编了一个简单的把阿拉伯数字转化成中文表示的程序,很粗糙,欢迎大家优化!!!
- 将一个整数(数字或长字符串形式)转换成中文输出
- 随意输入一个正整数n, 在输入转化的进制数,将转化后的序列输出,并判断某一个数字的个数,这里给的是二进制的例子
- 一个可以接收字符,若是小写则输出,若是大写则转化为对应的小写,若是数字不输出
- 一个正则表达式测试(只可输入中文、字母和数字)
- 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。 例如: 输入:3+8×2/9-2 输出:2
- 一个输入数字转化为大写的小程序(用到递归)(转)
- 用80x86汇编语言,编写一个输出16进制数字的程序
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 第二章作业51.4(编写一个程序,判断用户输入的字符是否为数字,若是数字,则输出“a numerical charater”,否则输出“other charater”。)
- 输出一个数字各个位数和
- 统计一个数字的位数并顺序和逆序输出这个数
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132