import java.text.DecimalFormat;
public class ChinaNum {
public static void main(String[] args) {
ChinaNum chinaNum=new ChinaNum();
System.out.println(chinaNum.getChinaNum(6007567));
System.out.println(chinaNum.getChinaNum(987654321));
System.out.println(chinaNum.getChinaNum(900000001.34));
System.out.println(chinaNum.getChinaNum(907060501));
System.out.println(chinaNum.getChinaNum(900500001));
System.out.println(chinaNum.getChinaNum(601500001));
System.out.println(chinaNum.getChinaNum(40500001));
System.out.println(chinaNum.getChinaNum(500001));
System.out.println(chinaNum.getChinaNum(1001001.12));
System.out.println(chinaNum.getChinaNum(10101007));
System.out.println(chinaNum.getChinaNum(10100.1));
System.out.println(chinaNum.getChinaNum(10010.01));
System.out.println(chinaNum.getChinaNum(10011.01));
}
//玖亿捌仟柒佰陆拾伍万肆仟叁佰贰拾壹元整
private String small[] = { "角", "分" };
public String getChinaNum(double num) {
String[] number={ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
String[] numbers={"","元", "拾","佰", "仟","万","拾","佰", "仟","亿","拾","佰", "仟"};
DecimalFormat df=new DecimalFormat("0.00");
String money=df.format(num);
String moneyleft=money.substring(0, money.indexOf("."));
String moneyright=money.substring(money.indexOf(".")+1,money.length());
String daxie="";
String hou="";
for (int i =0; i< moneyleft.length(); i++) {
String one=moneyleft.substring(i,i+1);
int onint=Integer.parseInt(one);
int last=moneyleft.length()-i;
hou=number[onint]+((onint>0 ||last==5 || last==1) ?numbers[last]:"");
daxie=daxie+hou;
}
daxie=replaceling(daxie).replace("亿零万零", "亿零").replace("零万", "万零").replace("零元", "元");
daxie=replaceling(daxie);
int intright=Integer.parseInt(moneyright);
if(intright>9){
int ge=Integer.parseInt(moneyright.substring(0, 1));
int shi=Integer.parseInt(moneyright.substring(1, 2));
daxie=daxie+number[ge]+"角"+(shi>0?(number[shi]+"分"):"");
}else if(intright>0){
daxie=daxie+"零"+number[intright]+"分";
}else{
daxie=daxie+"整";
}
return daxie;
}
public String replaceling(String str){
if(str.indexOf("零零")>-1){
str=str.replace("零零", "零");
return replaceling(str);
}else{
return str;
}
}
}
分享到:
相关推荐
总之,Java中实现数字到中文读法的转换主要涉及字符串处理和位运算。通过建立数字与中文字符的映射关系,再结合适当的规则优化,可以有效地解决这类问题。这种技术在各种需要进行中文显示的场景中都有应用,例如财务...
// 实现数字转汉字的逻辑 } } ``` `toChinese`方法将接收一个数字字符串,然后进行解析和转换。具体的实现可能包括将数字字符串拆分成整数部分和小数部分,分别处理,然后逐位进行转换。在处理过程中,还需要考虑...
在Java中,我们可以创建一个映射表,存储阿拉伯数字与中文数字的对应关系,然后编写一个方法来实现转换。以下是一个简单的实现: ```java public class NumberToChinese { private static final String[] units = ...
将小写数字变大写 如 输入1234567 可以输出一二三四五六七
把中文数字的读法通过程序转为英文读法的方法。
在学习日语的过程中,了解数字的读法是基础且重要的环节。日语数字的读法在不同的上下文中可能会有所变化,特别是在表示时间、日期和星期时。以下是对日语数字读法的详细总结: 1. **100以下的数字**: - 0:れい...
这个“把数学数字转换为人民币读法”的问题就是一个很好的设计思想的例子,它涉及到自然语言处理、字符串操作以及数字与文本之间的转换。我们将探讨如何使用C#来实现这个功能。 首先,人民币的读法有一定的规则,如...
但是,可以从这些内容推测出它们与日语数字的读法有关。在日语中,数字的读法可以按照不同的类别进行归类。以下将尝试根据常见的日语数字读法进行知识点的总结。 首先,日语数字分为基础数字和特殊读法的数字。基础...
接下来,我们需要定义一个映射表,将数字与中文数字对应起来。例如,数字0到9分别对应“零”、“壹”、“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、“捌”、“玖”。同时,还需要处理特殊规则,如“12”应该读...
这些数组是实现数字转英文的核心,因为它们存储了所有必要的转换信息。 在给出的代码中,`analyze`方法是实现数字转英文的核心。它接受一个`long`类型的数字作为参数,然后将其转换为字符串进行处理。这是因为Java...
英语数字读法PPT课件.pptx
在C语言中,将数字转换为汉语读法是一项有趣且具有挑战性的任务,它涉及到字符串处理、数值计算以及汉字字符的使用。以下是如何实现这一功能的一些关键知识点: 1. **数值与字符串的转换**:首先,我们需要将输入的...
题目:输入一串数字,转成人民币读法输出 例: 输入:12345678.908 输出:壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元玖角零捌厘 实现该功能要解决如下几个问题: 1、输入有效性检查 2、数字转中文 3、零的特殊处理 关于零...
在英语中,数字的读法遵循一定的规则,尤其对于三位以上的大数字,理解这些规则对于英语学习至关重要。本文将详细解析英语中数字的读法,包括基础数字、三位数、四位数以及五位数以上的表达方式。 首先,基础数字的...
阿拉伯数字金额转换成汉字金额,比如1000.00 转换成 壹仟元。
在数字的读法中,整数和小数的读法也很关键。例如,3.24可以读作three point twenty-four或three twenty-four。在日常生活中,小数点通常被说成point,或者直接忽略,如three twenty-four。而在支票上,金额如12.87...
将浮点数转化为人民币读法的字符串。如1006.333转为壹仟零陆元三角三分。
根据给定文件的信息,本文将详细介绍在数字运算中数符的各种英文读法,这对于从事数学英语教学的朋友来说具有很高的参考价值。以下是对该文件中提到的关键知识点进行详细解读。 ### 数学英语读法概述 首先,文件...
英语中的年份、日期、时间与数字的读法.doc