`

JAVA实现数字的汉字读法,适用于财务

    博客分类:
  • JAVA
阅读更多
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 数字转换成中文读法

    总之,Java中实现数字到中文读法的转换主要涉及字符串处理和位运算。通过建立数字与中文字符的映射关系,再结合适当的规则优化,可以有效地解决这类问题。这种技术在各种需要进行中文显示的场景中都有应用,例如财务...

    数字金额转汉字的读法(java代码)

    // 实现数字转汉字的逻辑 } } ``` `toChinese`方法将接收一个数字字符串,然后进行解析和转换。具体的实现可能包括将数字字符串拆分成整数部分和小数部分,分别处理,然后逐位进行转换。在处理过程中,还需要考虑...

    java阿拉伯数字转换成中文传统读法

    在Java中,我们可以创建一个映射表,存储阿拉伯数字与中文数字的对应关系,然后编写一个方法来实现转换。以下是一个简单的实现: ```java public class NumberToChinese { private static final String[] units = ...

    Java将小写数字变汉字

    将小写数字变大写 如 输入1234567 可以输出一二三四五六七

    中文数字读法转为英文

    把中文数字的读法通过程序转为英文读法的方法。

    日语数字读法总结(各种时间下数字的读法)

    在学习日语的过程中,了解数字的读法是基础且重要的环节。日语数字的读法在不同的上下文中可能会有所变化,特别是在表示时间、日期和星期时。以下是对日语数字读法的详细总结: 1. **100以下的数字**: - 0:れい...

    把数学数字转换为人民币读法(很好的设计思想)

    这个“把数学数字转换为人民币读法”的问题就是一个很好的设计思想的例子,它涉及到自然语言处理、字符串操作以及数字与文本之间的转换。我们将探讨如何使用C#来实现这个功能。 首先,人民币的读法有一定的规则,如...

    日语数字的读法[归类].pdf

    但是,可以从这些内容推测出它们与日语数字的读法有关。在日语中,数字的读法可以按照不同的类别进行归类。以下将尝试根据常见的日语数字读法进行知识点的总结。 首先,日语数字分为基础数字和特殊读法的数字。基础...

    疯狂Java讲义 浮点数转换成人民币读法

    接下来,我们需要定义一个映射表,将数字与中文数字对应起来。例如,数字0到9分别对应“零”、“壹”、“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、“捌”、“玖”。同时,还需要处理特殊规则,如“12”应该读...

    Java实现数字转成英文的方法

    这些数组是实现数字转英文的核心,因为它们存储了所有必要的转换信息。 在给出的代码中,`analyze`方法是实现数字转英文的核心。它接受一个`long`类型的数字作为参数,然后将其转换为字符串进行处理。这是因为Java...

    英语数字读法PPT课件.pptx

    英语数字读法PPT课件.pptx

    c语言数字转汉语读法

    在C语言中,将数字转换为汉语读法是一项有趣且具有挑战性的任务,它涉及到字符串处理、数值计算以及汉字字符的使用。以下是如何实现这一功能的一些关键知识点: 1. **数值与字符串的转换**:首先,我们需要将输入的...

    《疯狂java讲义》课后习题之数字转人民币读法(附源码)

    题目:输入一串数字,转成人民币读法输出 例: 输入:12345678.908 输出:壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元玖角零捌厘 实现该功能要解决如下几个问题: 1、输入有效性检查 2、数字转中文 3、零的特殊处理 关于零...

    关于英语数字的读法.doc

    在英语中,数字的读法遵循一定的规则,尤其对于三位以上的大数字,理解这些规则对于英语学习至关重要。本文将详细解析英语中数字的读法,包括基础数字、三位数、四位数以及五位数以上的表达方式。 首先,基础数字的...

    阿拉伯数字转化汉字

    阿拉伯数字金额转换成汉字金额,比如1000.00 转换成 壹仟元。

    英语中的年份日期时间与数字的读法.pdf

    在数字的读法中,整数和小数的读法也很关键。例如,3.24可以读作three point twenty-four或three twenty-four。在日常生活中,小数点通常被说成point,或者直接忽略,如three twenty-four。而在支票上,金额如12.87...

    将数字转化为人民币读法的小程序

    将浮点数转化为人民币读法的字符串。如1006.333转为壹仟零陆元三角三分。

    数字运算中数符的各种英文读法

    根据给定文件的信息,本文将详细介绍在数字运算中数符的各种英文读法,这对于从事数学英语教学的朋友来说具有很高的参考价值。以下是对该文件中提到的关键知识点进行详细解读。 ### 数学英语读法概述 首先,文件...

    英语中的年份、日期、时间与数字的读法.doc

    英语中的年份、日期、时间与数字的读法.doc

Global site tag (gtag.js) - Google Analytics