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

最终版:

import java.util.Scanner;
public class Test {public static void main(String[] args) {long num = 101000001010l;String[] digit =  {"零","壹","貳","叁","肆","伍","陆","柒","扒","玖"};String[] unit =  {"整","圆","拾","百","仟","万","拾","百","仟","亿","拾","百","仟","万"};while(true){num = new Scanner(System.in).nextLong();char[] chArr = Long.toString(num).toCharArray();StringBuilder sb = new StringBuilder("");for(int i = 0;i < chArr.length;i++){String s = digit[Integer.parseInt(String.valueOf(chArr[i]))];String s2 = unit[chArr.length-i];sb.append(s).append(s2);  }sb.append(unit[0]);String str = sb.toString();str = change(str);System.out.println(str);}}private static String change(String str) {String s = str.replaceAll("零[仟百拾]", "零");s = s.replaceAll("零+", "零").replaceAll("零亿", "亿").replaceAll("零万", "万");s = s.replaceAll("零圆", "圆").replace("亿万", "亿");return s;}
}

有bug版

import java.util.Scanner;public class Test2 {public static void main(String[] args) {// TODO Auto-generated method stublong num = 101000001010l;//一千零一十亿零一千零一十圆整num = 1010l;//一千零一十亿零一千零一十圆整while(true){System.out.println("输入数学数字:");num = new Scanner(System.in).nextLong();String[] unit = {"圆整","万","亿"};int count = -1;StringBuilder sb = new StringBuilder("");while(num>0){count++;String s = "";long n = num%10000;//取后四位if(n < 10)s = "000"+n;else if(n < 100 )s = "00"+n;else if(n < 1000)s = "0"+n;    elses = s+n;num /= 10000;if(!s.equals("0000"))s = toNum(s)+unit[count];//返回的数字加单位  elses = toNum(s);sb.insert(0, s);
//          System.out.println(sb);}String chineseNum = sb.toString();System.out.println(chineseNum);}}public static String toNum(String num){String[] digit =    {"零","壹","貳","叁","肆","伍","陆","柒","扒","玖"};char[] ch = num.toCharArray();//字符串形式的四位数int count = 0;//记录字符串含0的个数int index = -1;while((index = num.indexOf("0",index+1))!= -1)count++;
//      System.out.println("字符串含0个数count = "+count);String numStr = "";//返回的中文数字switch(count){case 4:numStr = "零";break;case 3:int temp = Integer.parseInt(num);if(temp<10)numStr = digit[ch[3]-'0'];else if(temp > 9 && temp < 101)numStr = digit[ch[2]-'0']+"拾";else if(temp > 99 && temp < 1000)numStr = digit[ch[1]-'0'] + "百";elsenumStr = digit[ch[0]-'0'] + "仟";break;case 2:if(num.matches("[0][0][1-9][1-9]")){numStr = numStr + digit[ch[2]-'0']+"拾"+digit[ch[3]-'0'];;}else if(num.matches("[1-9][0][0][1-9]")){numStr = numStr + digit[ch[0]-'0'] + "仟" +"零"+ digit[ch[3]-'0'];}else if(num.matches("[1-9][1-9][0][0]")){numStr = numStr + digit[ch[0]-'0'] + "仟" +digit[ch[1]-'0'] + "百";}else if(num.matches("[0][1-9][1-9][0]")){numStr = numStr + digit[ch[1]-'0'] + "百"+ digit[ch[2]-'0']+"拾";}else if(num.matches("[0][1-9][0][1-9]")){numStr = numStr + digit[ch[1]-'0'] + "百"+"零"+ digit[ch[3]-'0'];}else if(num.matches("[1-9][0][1-9][0]")){numStr = numStr + digit[ch[0]-'0'] + "仟"+"零"+ digit[ch[2]-'0']+"拾";}break;case 1:if(num.matches("[0][1-9][1-9][1-9]")){numStr = numStr + digit[ch[1]-'0'] + "百" + digit[ch[2]-'0']+"拾"+digit[ch[3]-'0'];}else if(num.matches("[1-9][0][1-9][1-9]")){numStr = numStr + digit[ch[0]-'0'] + "仟" +"零"+  digit[ch[2]-'0']+"拾"+digit[ch[3]-'0'];}else if(num.matches("[1-9][1-9][0][1-9]")){numStr = numStr + digit[ch[0]-'0'] + "仟" +digit[ch[1]-'0'] + "百" + "零"+digit[ch[3]-'0'];}else if(num.matches("[1-9][1-9][1-9][0]")){numStr = numStr + digit[ch[0]-'0'] + "仟" +digit[ch[1]-'0'] + "百" + digit[ch[2]-'0']+"拾";}break;default:numStr = numStr + digit[ch[0]-'0'] + "仟" +digit[ch[1]-'0'] + "百" + digit[ch[2]-'0']+"拾"+digit[ch[3]-'0'];}//     System.out.println(numStr);return numStr;}
}

java练习:金额转换,阿拉伯数字转换成中文传统形式相关推荐

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

    金额转换,阿拉伯数字转换成中国传统形式. 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整 package com.itheima;import java.util.Arr ...

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

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

  3. js将阿拉伯数字翻译成中文的大写数字

    // 将阿拉伯数字翻译成中文的大写数字 export const numberToChinese = (num) => {     var AA = new Array("零" ...

  4. 把阿拉伯数字翻译成中文大写数字

    package com.zcw.zcwbook.demo15;/*** @program: zcwbook* @description: 把阿拉伯数字翻译成中文大写数字* @author: zhaoc ...

  5. java实现将阿拉伯数字转成中文大写工具类

    package com.sqds.utils;/*** <p>Title: money</p>* <p>Description: * *该类是把阿拉伯数字转换成中文 ...

  6. python里面如何将数字转换成中文的形式_python中将阿拉伯数字转换成中文的实现代码...

    #!/usr/bin/python #-*- encoding: utf-8 -*- import types class NotIntegerError(Exception): pass class ...

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

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

  8. python里面如何将数字转换成中文的形式_Python怎么把数字变成中文?

    python将数字转换为中文的方法: 在字典中设置0-9为键,值为数字对应的中文,转换数字时获取字典中指定键对应的值即可.dict1={'0': '零', '1': '一', '2': '二', '3 ...

  9. java输入数字输出汉语_java实现将一个键盘输入的阿拉伯数字转化成中文输出

    (例如:输入:1234567     输出:一百二拾三万四千五百六拾七) 用java语言实现,,请编一段程序实现! public class Reader { private String strNu ...

最新文章

  1. Logical Volume Manager in Linux ( Create, Displ...
  2. java操作XML文件--读取内容
  3. 怀旧版大脚插件未能从服务器,魔兽世界怀旧服大脚插件
  4. 09 | 基础篇:怎么理解Linux软中断?
  5. Xcode 4.4 的新特性 | LLVM 4.0 的新语法
  6. oracle约束 关闭,Oracle约束管理脚本
  7. Quartus13.1全编译出现引脚错误(神级bug)
  8. Android打开相机进行人脸识别,使用虹软人脸识别引擎
  9. 存档位置_胶带输送机综合保护装置安装位置 技术标准(试行)
  10. Intel Multiprocessor System Architecture
  11. 搭建Mybatis源码环境
  12. regester正则用法_Regester(正则表达式测试器)
  13. 如何看待网络直播中的弹幕文化?
  14. 阻止野猪入境 丹麦在德国边境开始建设边境围栏
  15. 2020美容师(初级)模拟考试及美容师(初级)复审模拟考试
  16. 方法重写的两同两小一大原则
  17. 【CSDN软件工程师能力认证学习精选】 JavaEE 13个核心规范
  18. 电脑回收站里不小心清理删除的文件怎么恢复?
  19. 主力资金屡试不爽的六种洗盘手法
  20. 全国计算机考试能带手机吗,全国计算机等级考试注意事项

热门文章

  1. python 添加图片,python实现图片上添加图片
  2. java基于微信小程序的英语学习激励系统+ssm+uinapp+Mysql+计算机毕业设计
  3. vue-elemnetUI
  4. OpenVPN Connect踩坑日记
  5. Win11声卡驱动如何更新?Win11声卡驱动更新方法
  6. HTML中overflow的作用(转)
  7. Windows内网协议学习NTLM篇之NTLM基础介绍
  8. php装饰器模式 简书,设计模式——装饰器模式
  9. python实现树莓派监控_用树莓派实现室内温度监控
  10. 秋天的第一杯奶茶,我只送男生!