今天在网上看到一个笔试题挺有意思,就是将阿拉伯数字转化为中文,在用网银转账的时候见过这个功能,于是自己做了一下,下面是用递归实现的代码。
package info.lwjlaser.practice;
import java.util.Arrays;
/*
* 将阿拉伯数字转化为中文数字(不支持小数点)如:12345转化为一万二千三百四十五。
* @author lwjlaser,lwj.charles
*/
public class Arab2Chinese {
private char cnum[]={'零','一','二','三','四','五','六','七','八','九'};
public void convert(long num){
String numStr=String.valueOf(num);
char [] chars=numStr.toCharArray();
System.out.println(convert(chars));
}
private String convert(char [] chars){
StringBuilder sb = new StringBuilder();
if(chars.length > 8){
char [] beforeYi=Arrays.copyOfRange(chars, 0, chars.length-8);
char [] AfterYi=Arrays.copyOfRange(chars, chars.length-8, chars.length);
sb.append(convert(beforeYi)).append("亿").append(convert(AfterYi));
}
else if(chars.length > 4){
char [] beforeWan=Arrays.copyOfRange(chars, 0,chars.length-4);
char [] afterWan=Arrays.copyOfRange(chars, chars.length-4, chars.length);
sb.append(convert(beforeWan)).append("万").append(convert(afterWan));
}
else{
int length = chars.length;
int val=0;
int zeroCount=0;
for(int i=0;i < length; i++){
val=Integer.parseInt(chars[i]+"");
//处理数字中的零,如:12340,10033,10333,10303,10300,10000
if(0==val){
zeroCount++;
continue;
}
if(zeroCount!=0){
sb.append("零");
zeroCount=0;
}
sb.append(cnum[val]);
switch (length-1-i)
{
case 3:
sb.append("千");
break;
case 2:
sb.append("百");
break;
case 1:
sb.append("十");
break;
}
}
}
return sb.toString();
}
}
分享到:
相关推荐
java实现阿拉伯数字 转换为 汉字数字 算法
1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...
在android中,有时候会被要求讲阿拉伯数字转换为中文数字,例如书籍的页码。这里特地优化了转换过程
该dll能将阿拉伯数字转换为汉字数字。例如1234567.009可转换为: 一百二十三万四千五百六十七点零零九。目前支持正负千亿以内(整数部分不超过12位)的整数和小数的转化。 支持c#语言
将阿拉伯数字转换为大写数字,主要解决小数点问题,
将阿拉伯数字转化成汉字金钱 如1234.45转化为壹仟贰佰叁拾肆元肆角伍分
阿拉伯数字转换成中文数字, 例如: 10转换成十,111转换成一百一十一 最高支持的数字单位亿, 再大的话可能需要自己修改
读入一串阿拉伯数字,将其转化为中文金额的大写方式。这是老师布置的一题回家作业。花了一天时间完成的。虽然代码比较烦琐。但是所有的几率都考虑到了。
环境:vs2005 C# 功能:阿拉伯数字转换为中文大写数字
将一段字符串中的中文数字转换为阿拉伯数字,也可将阿拉伯数字转换为中文数字
输入万亿以下汉字数,可变为相应阿拉伯数字,附易语言源码,例如:五百八十万四千六百五十五对应为5804655
阿拉伯数字转换为中文大写
把阿拉伯数字转为汉字写法比如123456789转化为零壹贰叁肆伍陆柒捌玖,以及几百几千几万的数字都可以转化
不满意现有的阿拉伯数字转中文数字代码的效果,自己写了一个更加地道的代码,将如“一十一”等处理成“十一”;最大处理16位数字,具体数位规则如下:16(千兆),15(百兆),14(十兆),13(兆),12(千亿),11(百亿),10...
改代码支持将中文数字转换为阿拉伯数字,转换的范围到999为止,并且只能转换简单整数
独立开发,实测可用, 将阿拉伯和中文数字组合的字符串转成阿拉伯数字的整型 包。例如: “八万三千20”就可以转成整型 803020 。解压后,引用包。调用方法 在UnitTest.java 中有
用visual studio 2008编写的将汉字金额转换为阿拉伯数字显示形式,网站上都是讲阿拉伯数组转化为汉字,自己索性写了一个。。
mysql oracle 阿拉伯数字转中文数字, 亲测可用.找了很长时间才找到,
用java实现将阿拉伯数字转换为金额的汉字大写
中文数字转化成阿拉伯数字 C# 实现 数字转化 希望能给大家一些帮助