MyException - 我的异常网
当前位置:我的异常网» J2SE » 【分享】今天写了个算法解决了阿拉伯数字和中文大写

【分享】今天写了个算法解决了阿拉伯数字和中文大写的相互转换,给大家看看顺便帮小弟我测试下啊(2)

www.MyException.Cn  网友分享于:2013-12-08  浏览:37次

Java code

public class ChineseToArabDigit {
   public static void main(String args[]){
        long num_Buffer=0;
        long num_add=0;    
        long num_mutiply=0;
        long result_yi=0;
        long result_wan=0;
        
        char c1='圆';
        String s="壹亿亿圆";
      //  String s="叁仟柒佰贰拾壹萬贰仟叁佰柒拾壹亿捌仟贰佰柒拾叁萬壹仟贰佰捌拾壹圆";
        int index=s.indexOf('圆');
        s=s.substring(0,index);
        for(int i=0;i<s.length();i++){
        char c=s.charAt(i);
        int index_lastyi=s.lastIndexOf('亿');
        if(i!=s.length()-1){
        c1=s.charAt(i+1);
        }
        switch(c){
        case '零':
            num_Buffer=0;  
            break;
        case '壹':
           num_Buffer=1;
           if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=1; 
                 }
           break;
        case '贰':
            num_Buffer=2;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=2; 
                 }
            break;
        case '叁':
            num_Buffer=3;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=3; 
                 }
            break;
        case '肆':
            num_Buffer=4;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=4; 
                 }
            break;
        case '伍':
            num_Buffer=5;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=5; 
                 }
            break;
        case '陆':
            num_Buffer=6;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=6; 
                 }
            break;
        case '柒':
            num_Buffer=7;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=7; 
                 }
            break;
        case '捌':
            num_Buffer=8;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=8; 
                 }
            break;
        case '玖':
            num_Buffer=9;
             if(c1=='萬'||c1=='亿'||i==s.length()-1){
                  num_add+=9; 
                 }
            break;
            
/**************************************/            
        case '拾':
            num_add+=10*num_Buffer;
            break;
        case '佰':
            num_add+=100*num_Buffer;
            break;
        case '仟' :
            num_add+=1000*num_Buffer;
            break;
/****************************************/            
        case '萬':
            if(index_lastyi!=-1&&i<index_lastyi){
            num_mutiply=num_add*10000;
            }
            else if(index_lastyi==-1||i>index_lastyi){
            result_wan=num_add*10000;
            }
            num_add=0;
            break;
        case '亿':
            num_mutiply=(num_mutiply+num_add)*100000000;
            result_yi=num_mutiply;
            num_add=0;
            break;
        }
        }
        System.out.println(result_yi+result_wan+num_add);
   }
}




------解决方案--------------------
顶顶你
------解决方案--------------------
顶下!
------解决方案--------------------

http://www.blogjava.net/majianan/archive/2006/10/16/75431.html
------解决方案--------------------

------解决方案--------------------
不错 祝福楼主
------解决方案--------------------
不错,谢谢楼主分享啊
------解决方案--------------------
接分的飘过~~~
------解决方案--------------------

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有