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 以内的人民币大写转换,精确到 ...
随机推荐
- 使用Dotfuscator加密混淆程序以及如何脱壳反编译
混淆演示 首先介绍如何使用Dotfuscator对.net程序加密码混淆/加壳 C#或vb.net编写的应用程序或DLL. 这里随便创建了一个C#的命令行控制台程序.程序很简单,对当前的时间进行了AE ...
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd ...
- centos下搭建redis集群
必备的工具: redis-3.0.0.tar redis-3.0.0.gem (ruby和redis接口) 分析: 首先,集群数需要基数,这里搭建一个简单的redis集群(6个redis实 ...
- WEB服务器如何选择 Apache or Nginx?
Web服务器是直接影响网站性能的关键因素,也是每个站长选择网站运营环境时必然考虑的问题.目前Web服务器市场产品众多,最为主流和代表性的当属Apache.Nginx以及微软的IIS.本文目的是通过Ap ...
- 解决mysql 服务无法启动问题:Can't find messagefile 'D:\ ools\mysql-5.6.25-winx64\share\errmsg.sys'
右击我的电脑-->管理,查看Window日志里的应用程序,发现报错. 仔细检查一下my.ini的配置,确保路径正确,楼主的目录如下: 关键的一步,查看my.default文件,加入这样一句:sq ...
- 在linux下管理iphone
场景: linux发行版:ubuntu 14.04 64bit 3.13.0-67-generic(内核版本) iphone型号:iphone 5c (ios 8.1.3 已越狱) 准备工作(一定要先 ...
- 学习笔记:javascript 文档对象(document)
1.documnet函数 方法 描述 close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据. getElementById() 返回对拥有指定 id 的第一个对象 ...
- 使用configuration配置结束在quartz.net中使用硬编码Job,Trigger任务提高灵活性
经常在项目中遇到定时任务的时候,通常第一个想到的是Timer定时器,但是这玩意功能太弱鸡,实际上通常采用的是专业化的第三方调度框架,比如说 Quartz,它具有功能强大和应用的灵活性,我想使用过的人都 ...
- fopen的使用小记
整理自https://msdn.microsoft.com/zh-cn/library/t3ayayh1(VS.80).aspx errno, _doserrno, _sys_errlist, and ...
- Vue中comoputed中的数据绑定
Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...