金额转换,阿拉伯数字转换成中国传统形式。

例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整

package com.itheima;import java.util.ArrayList;/*** 第10题: 金额转换,阿拉伯数字转换成中国传统形式。* 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整* * **//*** 题目分析:本题实现比较复杂,主要是对连续零的判断,通过循环判断每一位以及* 前一位是否为零,来控制是否删除多余的零,实现字符串的金额转换* * */
public class Test10 {/*** 主函数* @param args*/public static void main(String[] args) {//定义一个阿拉伯数字的字符串数组String[] arr = {"101000001010","00101000000010","100","sdffd100"};//遍历数组for(int i=0;i<arr.length;i++){String str = transform(arr[i]);     //调用函数,将阿拉伯数字金额 转换为中国传统形式金额System.out.println(arr[i]+" 转化后为: "+str); //打印转换后的字符串内容}}/***  将字符串金额str转换为中国传统金额表示方式* @param str* @return*/public static String transform(String str){//使用正则表达式判断字符串格式是否为数字格式if(!str.matches("\\d+")){System.out.println("字符串" + str + "不是数字格式,无法转换!");return null;}//将字符串最前面的0去掉while(str.startsWith("0")){str = str.substring(1, str.length());}//将字符串数字替换成中文数字String[] num = new String[]{"0","1","2","3","4","5","6","7","8","9"};String[] cnNum = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};for(int i=0; i<10; i++){str = str.replace(num[i], cnNum[i]);}StringBuilder sb = new StringBuilder(str);//StringBuilder容器中存放字符串,用于插入删除操作int index = str.length()-1;   //从第index个字符从后往前开始操作,操作一次,index--//存放金额单位String[] unit = {"","拾","佰","仟"};String[] unit4 = {"萬","亿"};boolean flag = false;//判断前一个数是否为零的标记for(int i=0; i<str.length(); i++){//循环体内对容器sb进行操作//每4位插入万每8位插入亿,最低位先不设置单位if(i%4 == 0 && i != 0){//根据金额规则,单位万前面为4个零时,不插入万,并将index位置(最低位)的零删除if((i/4-1)%2 == 0 && index >= 3 && str.substring(index-3, index+1).equals("零零零零")){sb.deleteCharAt(index);index--;continue;}//否则在index+1位置插入相应的单位:万、亿sb.insert(index+1, unit4[(i/4-1)%2]);}//如果4位的最低位为零,删除最低位的零,将零标志置为trueif(i%4 == 0 && str.charAt(index) == '零'){sb.deleteCharAt(index);flag = true;index--;continue;}//如果前一位为零并且这一位也为零,删除这一位的零if(flag && str.charAt(index) == '零'){sb.deleteCharAt(index);index--;continue;}//如果当前位为零,将零标志置为trueif(str.charAt(index) == '零'){flag = true;index--;continue;}//当前位不为零,将零标志位置为false,插入金额单位flag = false;sb.insert(index+1, unit[i%4]);index--;}//完善金额表示形式sb.append("圆整");return sb.toString();}}

金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整相关推荐

  1. 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整

    public class Test{ // 定义三个字符数组,把中文的数字形式存储下来,再下面代码中获取下标,设置对应中文 private static char[] hunit = { '拾', ' ...

  2. 怎么实现金额转换,将阿拉伯数字金额转换成中国传统形式,例如1011变成一千零一拾一元整?

    public class Rmb{private static final char[] data = {'零','壹','贰','叄','肆','伍','陆','柒','捌','玖'};privat ...

  3. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出。...

    程序代码如下: package cn.itcast.framework.interview;import java.text.NumberFormat; import java.util.HashMa ...

  4. java练习:金额转换,阿拉伯数字转换成中文传统形式

    需求:金额转换,阿拉伯数字转换成中文传统形式   ,例如 101000001010   转为     壹仟零壹拾亿零壹仟零壹拾圆整 最终版: import java.util.Scanner; pub ...

  5. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出。

    /**  * @(#)SimpleMoneyFormat.java  *  *金额转换,阿拉伯数字的金额转换为中国传统的形式输出  * @lpxuan  * @version 1.00 2008/7/ ...

  6. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出

    去零的代码: return sb.reverse().toString().replaceAll("零[拾佰仟]","零").replaceAll(" ...

  7. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出

    去零的代码: return sb.reverse().toString().replaceAll("零[拾佰仟]","零").replaceAll(" ...

  8. 如何将阿拉伯数字转换成RMB大写格式

    代码如下: /*** @author weigeli*/ public class Change {public static final String POINT = ".";p ...

  9. 金额转换,阿拉伯数字的金额转换为中国传统的形式。例如:327328.96 - 叁拾贰万柒仟叁佰贰拾捌元玖角陆分。

    /** 定义数组存放数字对应的大写 */ private final static String[] STR_NUMBER = {"零", "壹", " ...

最新文章

  1. 提高网站页面收录的几个方法 返回列表 发新帖回复
  2. 【Excle数据透视表】如何在数据透视表中使用合并单元格标志
  3. 通过微信公众号获取用户信息(java版)
  4. Resetting the root password for MySQL
  5. ​Efficient GlobalPointer:少点参数,多点效果
  6. PyTorch必备神器 | 唯快不破:基于Apex的混合精度加速
  7. 生产环境中on yarn模式是否采用yarn session
  8. 如何检查PAL安装的功能
  9. ConcurrentHashMap 实现细节(转)
  10. 如何让pm2支持es6
  11. 9月1日学习内容整理:装饰器带参数,装饰器嵌套
  12. mac桌面文件不见了怎么办?
  13. ADSL拨号工作原理
  14. Node.js学习笔记——模块加载机制及npm指令详解
  15. 推荐几个电脑超级实用的电脑软件 方便实用
  16. 去哪儿攻略app v3.9.2 官方iphone版
  17. 使用git命令——分支切换
  18. Linux-看完这篇Linux基本的操作就会了(转)
  19. 商品详细信息的代码html_实操分享:如何将商品优惠券,添加到淘宝详情页?...
  20. 黑客与票贩子联手入侵185个政府网站

热门文章

  1. 支付宝沙箱环境的电脑网站支付和手机网站支付
  2. 基于ADXL345的 LED摇摇棒原理
  3. gif透明背景动画_Gifox for Mac(Gif动图制作工具) v2.0.2
  4. 2022制冷与空调设备运行操作国家题库模拟考试平台操作
  5. mysql日记本程序_JSP+Servlet+JDBC+mysql实现的个人日记本系统
  6. MSN -- AIR客户端
  7. php给图片添加文字水印
  8. 研究生阶段如何学习、做研究
  9. 媒:克里米亚被俄军控制 48小时内决定走势
  10. 工作中用到的软件、底层库列表