银行考题,将阿拉伯数字转换成大写的汉字模式
银行考题,将阿拉伯数字转换成大写的汉字模式
例如
123456789.01 -> 壹亿贰千叁百肆十伍万陆千柒百捌十玖元零壹分
public class ConvertFromNumericToChinese {/*** split 是String的方法 不是StringBuilder的,split(.)的时候的注意问题http://www.iteye.com/topic/165494,* 然后字符串的高低位问题 "123" 第0位 ‘1’. 第1位 ‘2’ 这样* @param args*/private static String[] chinese = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};private static String[] units = {"","十","百","千"};private static Object String;private static String convert(String num){StringBuilder sb = new StringBuilder(num);String[] str = num.split("\\.");if(str.length==1){//没有小数String zheng = convertZheng(str[0]);return zheng+"元整";}else{//小数情况String zheng = convertZheng(str[0])+"元";String fen = convertFen(str[1]);return zheng+fen;}} private static String convertFen(String str) {int length = str.length();String temp ="";if(length==1)temp = chinese[Integer.parseInt(str)]+"角"; else{if(Integer.parseInt(""+str.charAt(0))!=0)temp = chinese[Integer.parseInt(""+str.charAt(0))]+"角";elsetemp = "零";temp += chinese[Integer.parseInt(""+str.charAt(1))]+"分";}return temp;}private static String convertZheng(String str) {int length = str.length();int startUderWan=0;int startY = 0;String temp = "";//用于拼接字符串 最后返回if(length>8){//上亿了。。。startY = 1;temp += chinese[Integer.parseInt(""+str.charAt(0))]+"亿";}if(length>4){//上万了String str1 = str.substring(startY,length-4);startUderWan = startY+startUderWan+str1.length();List<String> result1 = new ArrayList<String>();for(int i=0; i<str1.length(); i++){if((""+str1.charAt(i)).equals("0")){result1.add("零");continue;}result1.add(chinese[Integer.parseInt(""+str1.charAt(i))]+units[str1.length()-1-i]);}for(int i=0; i<result1.size(); i++){if(result1.get(i).equals("零")&&(i+1)<result1.size()&&result1.get(i+1).equals("零")){continue;}temp +=result1.get(i);}if(temp.endsWith("零"))temp = temp.substring(0,temp.length()-1);if(!temp.endsWith("亿"))//这种情况100005675 不能带 “万”temp+="万";}List<String> result = new ArrayList<String>();for(int i=startUderWan; i<length; i++){if((""+str.charAt(i)).equals("0")){result.add("零");continue;}result.add(chinese[Integer.parseInt(""+str.charAt(i))]+units[length-1-i]);}for(int i=0; i<result.size(); i++){if(result.get(i).equals("零")&&(i+1)<result.size()&&result.get(i+1).equals("零")){continue;}temp +=result.get(i);}if(temp.endsWith("零"))temp = temp.substring(0, temp.length()-1);return temp;}private static boolean isValid(String num) {//后续加上String matchStr = "。。。。。。。。。。。。";boolean isValid = num.matches(matchStr);return isValid;}public static void main(String[] args) {String s = "123456789.01";String result = convert(s);System.out.println(result);}}
银行考题,将阿拉伯数字转换成大写的汉字模式相关推荐
- win7计算机名改成大写,处置win7系统将word中的阿拉伯数字转换成大写数字的还原方案...
随着电脑的使用率越来越高,我们有时候可能会遇到对win7系统将word中的阿拉伯数字转换成大写数字进行设置,如果我们需要对win7系统将word中的阿拉伯数字转换成大写数字进行设置时,要怎么处理win ...
- 阿拉伯数字转换成大写数字
本文转载自http://blog.csdn.net/yeah86/article/details/3456706 之前在CSDN论坛里,看有人Show了一些把中文大写转换成阿拉伯数字的程序代码,自己也 ...
- 阿拉伯数字转换成大写的数字
import java.math.BigInteger;/** * @author 作者 E-mail: * @version 创建时间:2016年9月18日 下午5:26:04 * 类说明 */ p ...
- 使用 C# 将数字转换成大写人民币
贴段最近在项目中用到的一个函数. 因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊. 可转换数字大小在10亿以下,超过的,就无能为力了,不过大家 ...
- 【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】
Java字符串应用场景:数字金额转换成汉字金额 文章目录 Java字符串应用场景:数字金额转换成汉字金额 前言 一.String简单介绍 二.字符串在开发中的应用场景 三.金额转换 3.1解题思路 3 ...
- js将阿拉伯数字转换成中文的大写数字
js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...
- php大写数字转换,PHP将阿拉伯数字转换成汉字大写支持小数点
PHP将带有小数点的一串阿拉伯数字转换成汉字大写形式,就像转换人民币大写类似.加入了小数点的处理,只要是一连串的数字,不管是否带有小数点,通过本函数都能完美转换. PHP将阿拉伯数字转换成汉字大写支持 ...
- 【工具封装】Python 实现将阿拉伯数字 === 转换成中文大写数字
一.序言: 工具封装第四弹,阿拉伯数字 ===> 转换成 ===> 中文大写数字,喜欢就赶紧收藏+点赞+关注吧 !!! ---- Nick.Peng 二.实现代码如下: #!/usr/ ...
- 将一组阿拉伯数字转换成中文大写数字
题目大概: 将一组阿拉伯数字转换成中文大写数字 52306 ==> 伍万贰千叁百零陆 我实现了将文件中的一组数字(每行为一个数) 形如: Java代码 25364 466932300 ...
最新文章
- 2022-2028年中国老年旅游市场深度调研及开发战略研究报告
- php日期选择插件,优雅的日期选择插件daterangepicker
- MOS2010开发基础和集几种开发模型
- clojure的感觉
- 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化
- 写给MongoDB开发者的50条建议Tip6
- ElasticSearch什么是文档?索引一个文档
- 第十二天Python学习记录
- java EE map
- eclipse svn不能忽略文件及文件夹,ignore设置无效 ?
- java中typeof_JS typeof的用法
- linux批量重命名脚本,Linux批量命名文件SH脚本整理
- 2021-09-06LS是交替最小二乘(alternating least squares)的简称,用交替最小二乘求解的一个协同推荐算法。
- Quectel BC95-CNV 多频段、高性能、低功耗 LTE Cat NB2无线通信模块[移远通信]
- 如何卸载 Adobe Creative Cloud 桌面应用程序
- 模拟器安装magisk
- 【机器学习】机器学习项目全流程(附带项目实例)
- 关于电子科技大学学生用餐情况的一些调查
- 运用设计模式实现Sql语句动态转换
- 微信浏览器页面默认背景色的问题
热门文章
- “浏览器设置从上次停下的地方继续,但是电脑重启打开后还是主页”问题的解决办法
- 标注工具——VGG Image Annotator (VIA)
- 交互式系统中采用的调度算法
- 屹立千年,只为你一个回眸
- CloudCompare:点云间重叠区可视化对比
- 一、(4) 结巴分词词性提取
- 数学家西蒙斯:华尔街最赚钱的基金经理
- 爱心 python 词云_爱心 python 词云_python 词云
- STM32,三色灯组合任意颜色
- tal php x 1,PHP中TAL模板引擎语法的解析(代码)