java递归算法实现 数字人民币大写转换
最近穷死了 ,没钱吃饭ing 写点钱给自己吧!
public class Test{
public static String getChar(long a){
int b = (int)a;
Map map = new HashMap();
map.put(0,"零");
map.put(1,"壹");
map.put(2,"贰");
map.put(3,"叁");
map.put(4,"肆");
map.put(5,"伍");
map.put(6,"陆");
map.put(7,"柒");
map.put(8,"捌");
map.put(9,"玖");
return map.get(b).toString();
} public static void main(String args[]) throws Exception {
String chinese0 = getChineseMoney(1007L);
System.out.println("我有"+chinese0 + "圓"); String chinese = getChineseMoney(10155530665347L);
System.out.println("我有"+chinese + "圓"); String chinese2 = getChineseMoney(10100065347L);
System.out.println("我有"+chinese2 +"圓"); String chinese3 = getChineseMoney(1013333223300065347L);
System.out.println("我穷死了。"+chinese3 +"圓");
} public static String getChineseMoney(long alb){
int len = String.valueOf(alb).length();
switch (len){
case 1:
return getChar(alb);
case 2:
return alb % 10 == 0 ? (alb/10 == 1 ? "": getChar(alb/10))+"拾" : getChar(alb/10)+"拾" +getChar(alb%10);
case 3:
if( alb % 100 == 0) {
return getChar(alb / 100) + "佰";
}
if(String.valueOf(alb).charAt(1) == '0'){
return getChar(alb / 100) + "佰"+getChar(0)+getChar(alb % 100);
}else{
return getChar(alb / 100) + "佰" + getChineseMoney(alb % 100);
}
case 4:
if( alb % 1000 == 0) {
return getChar(alb / 1000) + "仟";
}
if(String.valueOf(alb).charAt(1) == '0' && String.valueOf(alb).charAt(2) == '0'){
return getChar(alb / 1000) + "仟"+getChar(0)+getChar(alb % 100);
}else if(String.valueOf(alb).charAt(1) == '0'){
return getChar(alb / 1000) + "仟" + getChar(0) + getChineseMoney(alb % 100);
} else {
return getChar(alb / 1000) + "仟" + getChineseMoney(alb % 1000);
}
case 5: case 6: case 7: case 8:
return getChineseMoney(alb / 10000) + "万" + getChineseMoney(alb % 10000);
case 9: case 10: case 11: case 12:
return getChineseMoney(alb/(10000*10000L)) + "亿" + getChineseMoney(alb % (10000*10000L));
case 13: case 14: case 15:
return getChineseMoney(alb/(10000*10000*10000L)) + "万" + getChineseMoney(alb % (10000*10000*10000L));
default:
return "我穷的只剩下钱了,自己无聊的话加上去吧!";
}
}
}
java递归算法实现 数字人民币大写转换的更多相关文章
- python实现人民币大写转换
问题描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序. 在中文大写方式中,0到10以及100.1000.10000被依次表示为: 零 壹 贰 ...
- FastReport调用Delphi中的人民币大写转换自定义函数
FastReport调用Delphi中的人民币大写转换自定义函数 FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje ...
- 用python实现把数字人民币金额转换成大写的脚本程序
# -*- coding: utf-8 -*- def Num2MoneyFormat( change_number ): """ .转换数字为大写货币格式( forma ...
- 【办公-Word-VB】人民币大写转换-带完整注释
完整代码见:我的CSDN博客 -------------------- 应公司财务人员的请求,需在Word中做个:输入阿拉伯数字,自动转换成大写,并填充到Word控件中对应的亿.万.千控件格子的功能, ...
- Java递归算法——三角数字(消除递归)
import java.io.*; // for I/O //类名:Params //属性: //方法: class Params //这个类的对象被压入栈中 { public int n; //用来 ...
- Java递归算法——三角数字
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- Java实现将数字转为大写汉字
public class Int2Big { static String int2big(int src) { final String num[] = {"零", "壹 ...
- Java实现人民币大写精讲
想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...
- Java实现人民币大写代码解析
想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...
随机推荐
- [刷题]算法竞赛入门经典(第2版) 5-14/UVa1598 - Exchange
题意:模拟买卖,当出售价bid等于或低于出售价ask,则交易. 代码:(Accepted,0.330s) //UVa1598 - Exchange //Accepted 0.330s //#defin ...
- WPF学习随笔
内容控件 Padding内边距,Margin外边距 1.ScrollViewer滚动条控件 <ScrollViewer VerticalScrollBarVisibility="Vis ...
- Java (PO,VO,DAO,BO,POJO,DTO) 几种对象解释
1. PO:persistant object 持久对象 可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对 ...
- String的Intern方法详解
引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String.这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念.常量池就类似一个JAVA系统级别提供的缓存.8种 ...
- TCP流量控制和拥塞控制
TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报文段,发送 ...
- PHP二位数组按照数组的某个字段值排序
不多废话 直接代码 /** * @name 排序 按照数组的某个字段值排序 * @param $array 排序数组 $field 排序字段 $direction 排序顺序 * @author wan ...
- SparkMLib分类算法之朴素贝叶斯分类
SparkMLib分类算法之朴素贝叶斯分类 (一)朴素贝叶斯分类理解 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法.简单来说,朴素贝叶斯分类器假设样本每个特征与其他特征都不相关.举个例子, ...
- hive的表的基本操作
环境简介 实验环境使用的是cloudera-quickstart-vm-5.0环境. 内容摘要 创建表 修改表名 修改表中的列名 添加列 删除列 替换列 正文 Alter Table 语句 上面所述的 ...
- 《Android进阶》之第五篇 Fragment 的使用
http://blog.csdn.net/lmj623565791/article/details/37970961 1.Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的 ...
- 电商app开发新趋势!如何突显竞争力?
2017年是电商变化最大的一年,同时,也是最多机遇的一年,更是电商最好的时代,如最近所看到的亚马逊的市值已经超过了美国8大零售商的总和,带领美国率先走向了新零售时代;马云也在做改变,试图与线下的大卖场 ...