自己编写的方法
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,
}
}
分享到:
相关推荐
使用java实现对人民币大写处理,亲测可用!
这是一个把人民币数字转换成大写的java程序
主要为大家详细介绍了java实现数字转换人民币中文大写工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1. 最大支持百万亿(15位整数,2位小数) ;或仟万亿(16位整数) 2. 超过最大支持仟万亿(16位整数),只输出大写数字 3. 整数部分越大,则小数部分输出越不精确 4. 负数,则忽略负号
可以把金额数值转为财务上常用的金额大写,如100元 转为壹佰园
手写java类,金额转换成大写,代码有详细说明,金额装换成大写可达百万亿,需要将金额转换成大写的朋友可以下载直接用。
word文档自动转换货币人民币金额大写.docword文档自动转换货币人民币金额大写.docword文档自动转换货币人民币金额大写.doc
用JAVA书写的一个大写金额转化为小写金额的类
输入字符,通过正则验证是否为金额不超过万亿精确到小数点后两位,然后将数字转换为大写 包括后台java正则验证及前台js验证 请输入一个数字(精确到小数点后两位): fdsa54325.54 fdsa54325.54 false 请输入一个...
Java语言人民币转化为大写,支持一亿以内的数字;
用java代码 实现金额阿拉伯数字 转成 中文汉字大写形式
人民币金额大写数字转换器
Ireport实现金额大写 在irport里面写script脚本 完成转换
人民币数字转大写.java
人民币大写金额转换工具人民币大写金额转换工具人民币大写金额转换工具人民币大写金额转换工具
* 返回关于钱的中文式大写数字,支仅持到亿 * */ public static String arabNumToChineseRMB(int moneyNum){ String res=""; int i=3; if(moneyNum==0) return "零元"; while(moneyNum>0){ res=ChineseUnit...
Java人民币金额数字转换成大写,最常见的java面试题,最合理的解答。
最好放在公共方法里,以便调用,定义String 类型接受返回的金额,调用参数为需要传入的金额