实现的功能是将数字“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. 【Leetcode_easy】944. Delete Columns to Make Sorted

    problem 944. Delete Columns to Make Sorted 题意:其实题意很简单,但是题目的description给整糊涂啦...直接看题目标题即可理解. solution: ...

  2. Xpath定位和CSS定位(***重)

    1.XPath是一种在XML文档中定位元素的语言.因为HTML可以看作XML的一种实现, 所以Selenium用户可以使用这种强大的语言在Web应用中定位元素. 1.1 绝对路径定位 参考baidu. ...

  3. Charles 抓包配置

    本文参考:charles 抓包配置 proxy setting (代理设置) 设置的主界面如下: 动态端口 启用动态端口选项来监听动态端口,每次查询启动时选择.这样可以避免与计算机上可能运行的其他网络 ...

  4. VMware虚拟机及Linux安装

    VMware虚拟机安装指南:http://bbs.luobotou.org/thread-5750-1-1.html Linux系统各发行版镜像下载地址:http://www.linuxidc.com ...

  5. [数据库]简单SQL语句总结

    1.在查询结果中显示列名:a.用as关键字:select name as '姓名'   from students order by ageb.直接表示:select name '姓名'   from ...

  6. 《The Google File System》 笔记

    <The Google File System> 笔记 一.Introduction 错误是不可避免的,应当看做正常的部分而不是异常.因此需要设计持续监控,错误检查,容错,自动恢复的系统. ...

  7. Redis 的基本操作、Key的操作及命名规范

    Redis基本操作 查看数据的状态 pong redis 给我们返回 PONG,表示 redis 服务 运行正常 redis 默认用 使用 16 个 库 • Redis 默认使用 16 个库,从 0 ...

  8. ssh使用

    上传:    scp myfile.txt username@192.168.1.1:/homw/ 下载:    scp username@192.168.1.5:/home/myfile.txt / ...

  9. Spring Boot配置文件yml讲解--行内对象的配置方式

    yml行内对象的配置方法,一般是采取 上面的缩进方式,我只想配置在一行怎么处?——

  10. VK Cup 2017 - Round 1 (CDE)

    771C Bear and Tree Jumps 大意: 给定树,每步能走到距离不超过$k$的任意点,记$f(s,t)$为$s$到$t$的最少步数,求$\sum\limits_{s<t}f(s, ...