使用java把中文小写数字转化为阿拉伯数字
package com.test;/*** @author Administrator* @date 2018/6/8*/
public class SwitchNumber {public static void main(String[] args) {SwitchNumber modifyFileName = new SwitchNumber();int number = modifyFileName.getIntegerByNumberStr("六万七千三百八十二");System.out.println(number);number = modifyFileName.getIntegerByNumberStr("四千零一");System.out.println(number);}/*** 支持到12位** @param numberStr 中文数字* @return int 数字*/public int getIntegerByNumberStr(String numberStr) {// 返回结果int sum = 0;// null或空串直接返回if (numberStr == null || ("").equals(numberStr)) {return sum;}// 过亿的数字处理if (numberStr.indexOf("亿") > 0) {String currentNumberStr = numberStr.substring(0, numberStr.indexOf("亿"));int currentNumber = this.testA(currentNumberStr);sum += currentNumber * Math.pow(10, 8);numberStr = numberStr.substring(numberStr.indexOf("亿") + 1);}// 过万的数字处理if (numberStr.indexOf("万") > 0) {String currentNumberStr = numberStr.substring(0, numberStr.indexOf("万"));int currentNumber = this.testA(currentNumberStr);sum += currentNumber * Math.pow(10, 4);numberStr = numberStr.substring(numberStr.indexOf("万") + 1);}// 小于万的数字处理if (!("").equals(numberStr)) {int currentNumber = this.testA(numberStr);sum += currentNumber;}return sum;}/*** 把亿、万分开每4位一个单元,解析并获取到数据* @param testNumber* @return*/public int testA(String testNumber) {// 返回结果int sum = 0;// null或空串直接返回if(testNumber == null || ("").equals(testNumber)){return sum;}// 获取到千位数if (testNumber.indexOf("千") > 0) {String currentNumberStr = testNumber.substring(0, testNumber.indexOf("千"));sum += this.testB(currentNumberStr) * Math.pow(10, 3);testNumber = testNumber.substring(testNumber.indexOf("千") + 1);}// 获取到百位数if (testNumber.indexOf("百") > 0) {String currentNumberStr = testNumber.substring(0, testNumber.indexOf("百"));sum += this.testB(currentNumberStr) * Math.pow(10, 2);testNumber = testNumber.substring(testNumber.indexOf("百") + 1);}// 对于特殊情况处理 比如10-19是个数字,十五转化为一十五,然后再进行处理if (testNumber.indexOf("十") == 0) {testNumber = "一" + testNumber;}// 获取到十位数if (testNumber.indexOf("十") > 0) {String currentNumberStr = testNumber.substring(0, testNumber.indexOf("十"));sum += this.testB(currentNumberStr) * Math.pow(10, 1);testNumber = testNumber.substring(testNumber.indexOf("十") + 1);}// 获取到个位数if(!("").equals(testNumber)){sum += this.testB(testNumber.replaceAll("零",""));}return sum;}public int testB(String replaceNumber) {switch (replaceNumber) {case "一":return 1;case "二":return 2;case "三":return 3;case "四":return 4;case "五":return 5;case "六":return 6;case "七":return 7;case "八":return 8;case "九":return 9;case "零":return 0;default:return 0;}}}
使用java把中文小写数字转化为阿拉伯数字相关推荐
- 如何把excel里面中文小写数字转换成阿拉伯数字
今天跟大家分享一下如何把excel里面中文小写数字转换成阿拉伯数字 1.打开要处理的Excel文件 2.将E列数据复制一份到F列中并选中 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信 ...
- excel小写转大写公式_EXCEL中文小写数字怎么转化成阿拉伯数字呢?
把阿拉伯数字转化成中文小写数字,我们都知道,通过单元格格式设置就可以实现,如下图: 但是上面的转化有时并不能满足我们的需求,比如,我们需要把13转化成十三,而不是一十三,这时我们该怎么办呢? 下面我们 ...
- python将中文数字转化成阿拉伯数字
python将中文数字转化成阿拉伯数字 正则表达式提取文本中的数字 中文转化成阿拉伯数字 完整代码 正则表达式提取文本中的数字 这里演示一下文本中提取中文年份 import re m0 = " ...
- 关于把小写数字转化为大写数字的java代码
import java.math.BigDecimal; public class ConvertNumber { /** 定义数组存放数字对应的大写 */ private final static ...
- 如何把大写金额变为小写数字_怎样将带有小数点的小写数字转化为大写
Excel要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为G/通用格式"元"" 来实现.但在转换小数时却出现了问题,比如12 ...
- 《疯狂Java》1、数字转化汉字;2、乘法表;3、等腰三角形;4、区别substring按字节截取字符串;5、身份证验证器
1.数字转化汉字 import java.util.Scanner; public class Hello {//W,J,X分别为汉字数字与进制以及小数点后进制private static Strin ...
- JS中将中文数字转化为阿拉伯数字
数字转换为中文大写,我相信已经有很多的实现了,特别是一些银行金融系统中,经常会用到大写的人民币金额. 但是,反过来,怎么将这个中文描述的人民币金额转换为数字呢? 这里分享一个我很久之前写的一个转换函数 ...
- 关于中文的数字转化为阿拉伯的数字的解决方法
1.这里解决的是千万级别的数字,解决思路 个 十 百 千 万 十万 百万 千万 1.把零去掉 2.按照万进行切分,分成两个部分,进行分别求解,具体的解决方案如下 import java.util.H ...
- 小写数字转化为大写数字
本以为是个很简单的题,但写完之后发现各种bug,各种改.只是实现了功能而已.程序效果如下: 请输入您的数字(输入quit退出): 1 一 103 一百零三 12349234 一千二百三十四万九千二百三 ...
最新文章
- 2019-3:时间飞逝
- android 筛选控件_Flutter学习六之实现一个带筛选的列表页面
- 不加样本就能做数据增强?还能提效?
- boost::geometry::point_on_surface用法的测试程序
- 什么是 Web API 中的 background fetch API
- python特定词频统计_词频统计方案与具体实现-elasticsearch、spark、python
- 使用 varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型代替text、ntext 和 image 数据类型...
- oracle导出导入数据库
- mysql的压缩版安装
- 单内核,微内核,混合内核OS结构比较
- 久其报表软件基本操作指引
- 【JVM】JVM基础
- 在Arcgis中更改图层的坐标系
- C语言常见的陷阱与缺陷
- 怎么把动图分解成图片?gif怎么拆分成几张?
- vue移动端用什么数据可视化插件_vue框架大屏可视化
- 三台路由器两台计算机华为,两台华为路由器桥接设置方法
- 职业学校计算机教学创新论文题目,信息技术论文题目大全
- 关于前端隐藏元素的问题
- 奥塔在线:VisualStudio中使用Git的详细配置说明