实现的功能是将数字“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. extends 类的继承 / super关键字,调用继承类里面的函数和变量

    Son 继承Father 当其他脚本想调用 Father类里面的变量 or 方法 可以把 Son r=new Son()   等价于 Father r=new Father() 注意: 函数只能单继承 ...

  2. vs2010 出错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏(转)

    “LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决方法 一.错误描述 之前写的程序隔段时间使用VS2010再次运行时出现如下错误: LINK fatal error LNK1123转换 ...

  3. Swift4.0复习整数,浮点数,布尔值

    1.类型相互转换: Int(a) Float(b) let a = Bool(truncating: NSNumber(value: c)) 2.元组: let tuple: (Int, String ...

  4. Docker学习笔记——1.2 Docker组件

    Docker的核心组件包括: Docker客户端和服务器,也称为Docker引擎: Docker镜像: Registry: Docker容器. 1.Docker客户端和服务器 Docker是一个客户端 ...

  5. 向多个git仓库提交

    查看所有远程仓库 为了不用每次输密码,可以先配置ssh key 查看 添加远程仓库 git remote add origin1 git@other:YYYYYYYYYY/AA.git 向新的代码仓库 ...

  6. Pycharm use GUP server

    1.配置远程服务器信息 Tools——Deployment——Configuration 然后,点击加号Add一个远程服务信息. 我这里命名为server1:Type选择SFTP:Host即ip地址, ...

  7. 线性链条件随机场(CRF)的原理与实现

    基本原理 损失函数 (线性链)CRF通常用于序列标注任务,对于输入序列\(x\)和标签序列\(y\),定义匹配分数: \[ s(x,y) = \sum_{i=0}^l T(y_i, y_{i+1}) ...

  8. 01 web概念概述

    1.JavaWeb: 使用Java语言开发基于互联网的项目 2.软件架构:(1) C/S: Client/Server 客户端/服务器端在用户本地有一个客户端程序,在远程有一个服务器端程序如:QQ,迅 ...

  9. Python11之列表2(获取、删除列表元素、列表分片、拷贝)

    一.获取列表元素值 列表名 [ 索引值 ] 注:索引值从0开始 nameList = ['詹姆斯','字母哥','乐福','威少','乔治','戴维斯'] nameList[0] '詹姆斯' name ...

  10. JqueryMobile与php跳转问题

    JqueryMobile提交表单到php时,会出现空白页面,需要手动刷新才会显示php页面. 修正方法:form元素中添加data-ajax=“false”. 具体原理:https://blog.cs ...