`
rayn115
  • 浏览: 69035 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java人民币小写转大写(小数点后只支持到分)

    博客分类:
  • Java
阅读更多
package com.resource.test;

import java.util.Scanner;
class DaXie //人民币小写转大写
{
public static void main(String[] args)
{
System.out.println("请输入您要转换的金额数: ");
int j=0;
Scanner shu=new Scanner(System.in);
double b=shu.nextDouble();
long f=(long)(b*100);
String [] a=new String []{"壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String [] d=new String[]{"分","角","元","拾","百","千","万","十","百","千","亿","十","百","千","兆","十","百","千"};
String  c=new String(""+f);
System.out.println("\n转换后的金额为:\n");
for (int i=0;i<c.length();i++ )
{
if(c.charAt(i)!='0')
{   

System.out.print(a[c.charAt(i)-49]+d[c.length()-i-1]);
}
else
{
if (i-j>0)
{
if(c.length()-i==3)
{
System.out.print("元");
}
else
{
System.out.print("零");
    j=i;
    ++j;

}

}

}

}

}

}

/*==================================*/

/*网上找到的另一个例子,实现起来挺清晰的*/

/*===================================*/

package com.resource.test;

public class RMB { 
    public static void main(String[] args) { 
        String s = toUpper("123,456,789.55"); 
        System.out.println(s); 
    } 

    /**
    * 小写转换大写金额
    */
    public static String toUpper(String amount) { 
        StringBuffer result = new StringBuffer(""); 
        String[] tmp = amount.replaceAll(",", "").split("\\."); 
        String integer = tmp[0]; 
        final int LEN = integer.length(); 
        if (LEN > 12) { 
            throw new RuntimeException("太大了 ,处理不了啊!"); 
        } 
        for (int k = 12; k > LEN; k--) { 
            integer = "0" + integer; 
        } 
        int part1 = Integer.parseInt(integer.substring(0, 4)); 
        int part2 = Integer.parseInt(integer.substring(4,); 
        int part3 = Integer.parseInt(integer.substring(8, 12)); 

        if (part1 != 0) { 
            result.append(parseInt(part1) + "亿"); 
        } 

        if (part2 != 0) { 
            if(part2<1000) 
                result.append("零"); 
            result.append(parseInt(part2) + "万"); 
        }else{ 
            result.append("零"); 
        } 

        if (part3 != 0) { 
            if(part3<1000) 
                result.append("零"); 
            result.append(parseInt(part3)); 
        } 
        result.append("元"); 
        if (tmp.length == 2) { 
            result.append(parseFloat(tmp[1])); 
        } 
        return result.toString(); 
    } 

    /**
    * 解析四位整数转换为中文金额大写
    * 
    * @param sStr
    * @return
    */
    public static String parseInt(int i) { 
        String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; 
        String result = ""; 
        int tmp = i; 
        if (tmp / 1000 != 0) { 
            result += num[tmp / 1000] + "仟"; 
            tmp = tmp - (tmp / 1000) * 1000; 
        } 
        if (tmp / 100 != 0) { 
            result += num[tmp / 100] + "佰"; 
            tmp = tmp - (tmp / 100) * 100; 
        } 
        if (tmp / 10 != 0) { 
            result += num[tmp / 10] + "拾"; 
            tmp = tmp - (tmp / 10) * 10; 
        } 
        if (tmp != 0) 
            result += num[tmp]; 
        return result; 
    } 

    /**
    * 解析小数部分
    */
    public static String parseFloat(String sStr) { 
        String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "七", "捌", "玖" }; 
        String[] unit = { "角", "分" }; 
        String result = ""; 

        final int LEN = sStr.length(); 
        for (int i = 0; i < LEN; i++) { 
            String tmp = sStr.substring(i, i + 1); 
            int k = Integer.parseInt(tmp); 
            result += num[k] + unit[i]; 
        } 
        return result; 
    } 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics