今天在网上看到一个笔试题挺有意思,就是将阿拉伯数字转化为中文,在用网银转账的时候见过这个功能,于是自己做了一下,下面是用递归实现的代码。
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位)...
总之,阿拉伯数字到汉字数字的转换是中文编程中常见的需求,`arabChange.dll`提供了这样的功能,使得C#开发者可以方便地将阿拉伯数字转化为符合中文阅读习惯的汉字数字。通过理解和正确使用这个库,可以提高代码的...
在Android开发过程中,有时我们需要将阿拉伯数字(1, 2, 3...)转换成中文小写数字(一,二,三...),特别是在涉及到文化习惯或者用户界面本地化的时候,如书籍页码显示。这个任务涉及到字符串处理和字符映射,下面...
将阿拉伯数字转换为大写数字,主要解决小数点问题,
在编程领域,尤其是在Visual Basic(VB)环境中,有时我们需要处理数字格式化的需求,例如将阿拉伯数字转换为中文数字。这通常在财务、会计或者文化相关的软件应用中出现,因为中文数字在某些场合下更符合人们的阅读...
将一段字符串中的中文数字转换为阿拉伯数字,也可将阿拉伯数字转换为中文数字
阿拉伯数字转换为中文大写是将阿拉伯数字转换为中文大写数字的过程。在这个过程中,我们需要使用数组来存储中文大写数字和单位,然后通过遍历阿拉伯数字字符串,逐个将数字转换为中文大写数字,并加上相应的单位。 ...
在编程领域,中文数字转化成阿拉伯数字是一项常见的需求,特别是在处理中文文本数据时。C#是一种广泛使用的面向对象的编程语言,它提供了丰富的库和工具来处理字符串和文本转换。本篇文章将深入探讨如何在C#中实现...
在Java编程中,将阿拉伯数字转化为中文金额大写是一项常见的任务,特别是在财务系统或报表生成中。这个题目要求实现一个程序,能够读取输入的阿拉伯数字字符串,然后将其转换为符合中国会计规范的中文大写金额表示。...
在Java编程语言中,将中文数字转换为阿拉伯数字是一个常见的需求,特别是在处理中文文本数据时。这个场景下,我们有一个名为“中文数字转成阿拉伯数字 java 实现”的压缩包,包含了一个实现此功能的Java包和一个单元...
阿拉伯数字转换成中文数字, 例如: 10转换成十,111转换成一百一十一 最高支持的数字单位亿, 再大的话可能需要自己修改
把阿拉伯数字转为汉字写法比如123456789转化为零壹贰叁肆伍陆柒捌玖,以及几百几千几万的数字都可以转化
环境:vs2005 C# 功能:阿拉伯数字转换为中文大写数字
输入万亿以下汉字数,可变为相应阿拉伯数字,附易语言源码,例如:五百八十万四千六百五十五对应为5804655
这个项目"汉字金额转换为阿拉伯数字"的目标是创建一个程序或函数,它能够接受汉字表示的金额,如“壹拾贰万叁仟肆佰伍拾陆元柒角捌分”,并将其转换为对应的阿拉伯数字形式,如“123456.78”。在描述中提到,虽然...
在IT领域,中文数字转换阿拉伯数字是一个常见的编程需求,尤其在中国的文化背景下,有时需要将中文表述的数字转化为阿拉伯数字用于计算或数据处理。这个任务涉及到自然语言处理(NLP)和字符串处理技术,通常通过...
将阿拉伯数字转化成汉字金钱 如1234.45转化为壹仟贰佰叁拾肆元肆角伍分
不满意现有的阿拉伯数字转中文数字代码的效果,自己写了一个更加地道的代码,将如“一十一”等处理成“十一”;最大处理16位数字,具体数位规则如下:16(千兆),15(百兆),14(十兆),13(兆),12(千亿),11(百亿),10...