Java数字转化为阿拉伯数字_Java实现中文数字转换为阿拉伯数字

/** * 将二百一十八转化成218 * 二千零四万 204 * 三亿零六百零七万零九百零六=306070906 * 三千零五十万四千三百二十六亿零六百零七万一千九百零六 * @param str * @return Long */public static Long chineseToNum(String str) {Map

/**

* 中文數字转阿拉伯数组【十万九千零六十 --> 109060】

* @author 雪见烟寒

* @param chineseNumber

* @return

*/

@SuppressWarnings("unused")

private static int chineseNumber2Int(String chineseNumber){

int result = 0;

int temp = 1;//存放一个单位的数字如:十万

int count = 0;//判断是否有chArr

char[] cnArr = new char[]{'一','二','三','四','五','六','七','八','九'};

char[] chArr = new char[]{'十','百','千','万','亿'};

for (int i = 0; i < chineseNumber.length(); i++) {

boolean b = true;//判断是否是chArr

char c = chineseNumber.charAt(i);

for (int j = 0; j < cnArr.length; j++) {//非单位,即数字

if (c == cnArr[j]) {

if(0 != count){//添加下一个单位之前,先把上一个单位值添加到结果中

result += temp;

temp = 1;

count = 0;

}

// 下标+1,就是对应的值

temp = j + 1;

b = false;

break;

}

}

if(b){//单位{'十','百','千','万','亿'}

for (int j = 0; j < chArr.length; j++) {

if (c == chArr[j]) {

switch (j) {

case 0:

temp *= 10;

break;

case 1:

temp *= 100;

break;

case 2:

temp *= 1000;

break;

case 3:

temp *= 10000;

break;

case 4:

temp *= 100000000;

break;

default:

break;

}

count++;

}

}

}

if (i == chineseNumber.length() - 1) {//遍历到最后一个字符

result += temp;

}

}

return result;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值