D1.将数字转换成汉字

来源:互联网 发布:mba加油站 知乎 mpacc 编辑:程序博客网 时间:2024/06/17 14:00

/*导入的包省略*/

/*本文例子出自疯狂李刚 没有考虑譬如10003,300004这种情况*/

public class Num2Rmb{

private String[] hanArr={"零","壹","贰","叁","肆","伍","陆","柒","仈","玖"};

private String[] unitArr={"拾","佰","仟"};

private String[] divide(double num){
 
  long zheng=(long)num;
  long xiao =Math.round(num-zheng)*100;
  return new String[] {zheng+"",String.valueOf(xiao)};

  }

private String toHanStr(String numStr){
  
  String result="";
  int numLen=numStr.length();
  for(int i=0;i<numLen;i++){

    //将char型的数字转换成int型数字,因为他们的ASCAII码值恰好相差48

   //因此将char型的数字减去48即得到int型的数字,如'24'变成24
     int num=numStr.charAt(i)-48;

  //如果不是最后一位数字且数字不为0,则需添加单位(拾,佰,仟)

    if(i!=numLen-1&& num!=0){
 result+=hanArr[num]+unitArr[numLen-2-i];
 }
     else
 {
          result+=hanArr[num]; 
      }
   }
 return result;
}
public static void main(String[] args){
    Num2Rmb nr=new Num2Rmb();
    System.out.println(Arrays.toString(nr.divide(236711125.123)));
    System.out.println(nr.toHanStr("6109"));
   
 }
}

0 0
原创粉丝点击