实现的功能是将数字“673”转换成“陆佰柒拾叁”    “3681”转换成“叁仟陆佰捌拾壹”     “8007”转换成“捌仟零柒”

  主要使用了数组和循环来实现

  代码雏形

package com.test.array;

public class Num2RMB2 {
private static String[] han = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒",
"捌", "玖" }; //准备转换的汉字
private String[] unit = { "万" , "仟" , "佰" , "拾" ,"个"}; //准备单位 private String Num2Rmb(String str){
int strLength = str.length(); //首先先获得传入字符串的长度 String n = ""; //定义一个空字符串,用来接收最后形成的结果
/**
* 因为不确定要输入的数字是多少位,所以从后往前开始转换
* <1>数字的长度为strLength,所以从第strLength-1位(也就是从最小一位)开始转换
* <2>str.charAt函数可以获得字符串索引处的char值,然后再减去48,将该char转换为数字
* <3>因为个位数是不需要单位的,需要用i!=strLength-1来做判断,如果是最后一位,则不加单位
* <4>最后再将转换后的数字添加上单位连接起来
*/
for(int i=strLength-1;i>=0;i--){ //<1> int index = str.charAt(i)-48; //<2>
if(i!=strLength-1){ //<3>
n = han[index]+ unit[i] + n ; //<4>
}else{
n = han[index]+ n ;
}
}
return n;
} public static void main(String[] args) {
Num2RMB2 num2rmb = new Num2RMB2();
String daxie = num2rmb.Num2Rmb("56089");
System.out.println(daxie);
}
}

上面的代码还存在问题,例如这样的数字“10256” 则会转换成“壹万零仟贰佰伍拾陆”,所以这时候还需要在转换的时候做一个判断,如果该处的数字为0,也不加单位

所以上面的代码修改为

package com.test.array;

public class Num2RMB2 {
private static String[] han = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒",
"捌", "玖" }; //准备转换的汉字
private String[] unit = { "万" , "仟" , "佰" , "拾" }; //准备单位 private String Num2Rmb(String str){
int strLength = str.length(); //首先先获得传入字符串的长度 String n = ""; //定义一个空字符串,用来接收最后形成的结果
/**
* 因为不确定要输入的数字是多少位,所以从后往前开始转换
* <1>数字的长度为strLength,所以从第strLength-1位(也就是从最小一位)开始转换
* <2>str.charAt函数可以获得字符串索引处的char值,然后再减去48,将该char转换为数字
* <3>因为个位数是不需要单位的,需要用i!=strLength-1来做判断,如果是最后一位,则不加单位
* <4>最后再将转换后的数字添加上单位连接起来
*/
for(int i=strLength-1;i>=0;i--){ //<1> int index = str.charAt(i)-48; //<2>
if(i!=strLength-1 && index!=0){ //<3>
n = han[index]+ unit[i] + n ; //<4>
}else{
n = han[index]+ n ;
}
}
return n;
} public static void main(String[] args) {
Num2RMB2 num2rmb = new Num2RMB2();
String daxie = num2rmb.Num2Rmb("56089");
System.out.println(daxie);
}
}

这个时候基本上就已经差不多了,但是还存在问题,加入说数字为“50089”  则会转换成 “伍万零零捌拾玖”

所以说还需要做判断(待续)

实现数字转换RMB大写~的更多相关文章

  1. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写     示例.   数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参 ...

  2. 【PHP】金额数字转换成大写形式

    <?php /*将数字金额转成大写*/ function num_to_upper($num) { $d = array('零','壹','贰','叁','肆','伍','陆','柒','捌', ...

  3. C# 数字转换成大写

    /// <summary> /// 数字转大写 /// </summary> /// <param name="Num">数字</para ...

  4. js将数字转换成大写的人民币表达式

    function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", " ...

  5. PHP实现金额数字转换成大写函数

    <?php header("Content-Type:text/html;charset=utf-8"); function num_to_upper($num) { $d ...

  6. JavaScript实现把数字转换成中文

    /** * 数字转换汉字大写 * @constructor * 用法示例:new NumberToChinese(122222).toUpper(); new NumberToChinese(1222 ...

  7. 算法--java实现将数字转换成人民币大写(迅雷面试题)

    今天去迅雷面试,是个数字转换成人民币的算法题: public class Rmb { /** * 人民币的基本信息和操作 * * @author soyoungboy * @version 1.0 * ...

  8. C#小写数字金额转换成大写人民币金额的算法

    C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...

  9. js 将数字转换成人民币大写的方法

    //将数字转换成人民币大写的方法 var digitUppercase = function (n) { var fraction = ['角', '分']; var digit = [ '零', ' ...

随机推荐

  1. oraagent.bin High Memory Usage as Dependent Listener was Removed/Renamed

    Grid Infrastructure oraagent.bin process using huge amount of memory and  forking huge number of thr ...

  2. 静态站点生成器-html-markdown-hugo

    推荐指数:

  3. 【opencv】opencv函数isContinuous

    isContinuous 参考 1. opencv_isContinuous; 完

  4. vue引入iconfont报错

    参考链接:https://blog.csdn.net/weixin_37215881/article/details/89237213

  5. formSelects隐藏功能键

    隐藏后 方法: // selectId就是select的id,这是在select渲染完后执行 $("#selectId").parent().find(".xm-sele ...

  6. SpringMVC常用注解@Controller,@Service,@repository,@Component,@Autowired,@Resource,@RequestMapping

    1.controller层使用@Controller注解-用于呈现层,(spring-mvc) @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controlle ...

  7. ~postman使用Runner

    1.准备参数的.text文件. postman支持三种参数的方式,分别为.text文件,.csv文件,json文件.此处使用.text文件.编码格式使用utf-8 2.替换请求参数 3.设置Runne ...

  8. uwsgi flask gevent 测试代码覆盖率(coverage)

    目录 可能出现的问题 解决 可能出现的问题 多进程启动 gevent启动 运行的服务可能不会停止 解决 我先参考了一下这一篇文章使用Coverage分析WSGI项目的代码覆盖率,他基本能够解决掉1.2 ...

  9. CH02基于ZYNQ的嵌入式LINUX移植

    CH02基于ZYNQ的嵌入式LINUX移植 1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx ...

  10. thrift原理与架构

    是什么: 一个RPC框架.