您的位置:首页 > 其它

转换RMB数字大小写格式

2006-10-19 18:14 183 查看



public class RmbConversion ...{




  public String Conversion(String str)...{


    String rmbstr = "";


    //创建单位字符串数组




    String rmbunit[] = ...{"","圆","拾","佰","仟","萬","亿"};


    //创建中文数字字符串数组




    String rmbnum[] =...{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};


    //把将要转换的数字的整型部分和小数部分别放在字符串数组中


    String lstr[] =str.split("/.");


    StringBuffer rmbsb = new StringBuffer();


    //拼写整型部分




    for(int i=lstr[0].length();i>0;i--)...{


      //将一个一的数字分别取出


      int k =Integer.parseInt((lstr[0]).substring((lstr[0].length()-(i-1))-1,lstr[0].length()-(i-1)));


      //转换后并连接


      rmbsb.append(rmbnum[k]);


      //给整型数字添加单位


      if(((i-1)/4)%2==0&&( (i - ( (i - 2) / 4 * 4 + 1))) + 1==5)


  //连接"亿"位


         rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+2]);


      else


  //连接"圆","拾","佰","仟","萬"位


         rmbsb.append(rmbunit[((i-((i-2)/4*4+1)))+1]);


    }


    //连接小数为数


    rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(0,1))]);


    rmbsb.append("角");


    rmbsb.append(rmbnum[Integer.parseInt(""+lstr[1].substring(1,2))]);


    rmbsb.append("分");


    rmbstr = rmbsb.toString();


    //去掉在字符串中多余的单位和零


    rmbstr = rmbstr.replaceAll("零([^亿万圆角分])", "零");


    rmbstr = rmbstr.replaceAll("亿零+万","亿零");


    rmbstr = rmbstr.replaceAll("零+", "零");


    rmbstr = rmbstr.replaceAll("零([亿万圆])", "$1");


    rmbstr =rmbstr.replaceAll("^壹拾","拾");


    //返回转换的结果.


    return rmbstr;


  }




  public static void main(String[] args) ...{


    RMBConversion rmbc = new RMBConversion();


    System.out.println("转换结果为:"+rmbc.Conversion(10000000000000000000001.00+""));


  }








以上是实现将数字(10000000000000000000001.00)转换为中文的大写格式.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class