`
aerchi
  • 浏览: 424216 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
文章分类
社区版块
存档分类
最新评论

java编程人民币金额大写问题

 
阅读更多

自己编写的方法

public class moneyTrans {

	/**
	 * @param args
	 */
	static String[] nums={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	static String mon="";
	static String getCurrentNum(int cur)
	{
		int temp=0;
		temp=Integer.parseInt(mon.substring(cur-1,cur));
		return nums[temp];
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int mo=80000;
		mon=String.valueOf(mo);
		int len=mon.length();
		
		switch(len)
		{
			case 0: System.out.println("零") ;break;
			case 1: System.out.println(nums[mo]);break;
			case 2: System.out.println(getCurrentNum(1)+"拾"+nums[Integer.parseInt(mon.substring(1))]);break;
			case 3: System.out.println(getCurrentNum(1)+"佰"+getCurrentNum(2)+"拾"+nums[Integer.parseInt(mon.substring(2))]);break;
			case 4: System.out.println(getCurrentNum(1)+"仟"+getCurrentNum(2)+"佰"+getCurrentNum(3)+"拾"+nums[Integer.parseInt(mon.substring(3))]);break;
			case 5: System.out.println(getCurrentNum(1)+"万"+getCurrentNum(2)+"仟"+getCurrentNum(3)+"佰"+getCurrentNum(4)+"拾"+nums[Integer.parseInt(mon.substring(4))]);break;
		}
		
	}

}



网上转来的方法:
















import java.util.Scanner;
public class 人民币大写 {
static String[] shu={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
static String[] wei={"仟","佰","拾"};
static int sum;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str1,str2,str3; //str1表示亿位以上数字,str2千位到万位,str3万位以下
System.out.println("请输入人民币金额:"); //输入小写人民币
Long num=sc.nextLong();
if(num==0) //判断输出的是否0元
System.out.print("零");
else{
String str=String.valueOf(num); //将人民币转化为字符串
int len=str.length()-1; //字符串长度
if(len<4){
str3=str.substring(0,len+1); //截取万位一下数字
四位(str3);
}
else if(len<8){
str2=str.substring(0,len-3); //截取千万位到万位
str3=str.substring(len-3,len+1); //截取万位以下
if(四位(str2))
System.out.print("万");
if(sum>0&&sum%10==0&&str3.charAt(0)!='0')
System.out.print("零");
四位(str3);
}
else if(len<12){
str1=str.substring(0,len-7); //截取亿位以上
str2=str.substring(len-7, len-3); //截取千万位到万位
str3=str.substring(len-3,len+1); //截取万位以下
if(四位(str1)){
System.out.print("亿");
if(sum>0&&sum%10==0&&str2.charAt(0)!='0')
System.out.print("零");
}
if(四位(str2)){
System.out.print("万");
if(sum>0&&sum%10==0&&str3.charAt(0)!='0')
System.out.print("零");
}
四位(str3);
}
}
System.out.println(":元");
}
public static boolean 四位(String str){ //一次四位数调用该方法
char siwei[]=str.toCharArray(); //转为位字符数组
boolean bool=false;
for(int k=0;k<siwei.length;k++) //若四位数字全为0,不执行下面代码
if(siwei[k]!='0')
bool=true;
sum=0;
for(int k=0;k<siwei.length-1;k++)
sum=(sum+(siwei[k]-'0'))*10;
if(bool){ //否则执行

for(int i=0;i<siwei.length-1;i++){ //最后一个数字单独判断
int t=siwei[i]-'0'; //转化整形
if(sum/10==1&&i==siwei.length-2&&siwei[i]=='1') //若倒数第二位1
System.out.print("拾");
else if(siwei[i]=='0'&&siwei[i+1]=='0') //若相邻2位为0不输出
continue;
else if(siwei[i]=='0'&&siwei[i+1]!='0') //其它情况输出
System.out.print(shu[t]); //3-siwei.length+1+i用来判断输出千,百,十
else
System.out.print(shu[t]+wei[3-siwei.length+1+i]); //3-siwei.length+1+i用来判断输出千,百,十
}
if(siwei[siwei.length-1]!='0'){ //提取最后,若不为0输出
int t=siwei[siwei.length-1]-'0'; //转化整形
System.out.print(shu[t]);
}
}
return bool; //返回的是:是否全为0,
}
}











分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics