自己编写的方法
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,
}
}