java数字转汉字

package test;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class ShuZiZhuanHanZi {

   public static void main(String[] args) {

      String jg = "";
      
      Scanner input = new Scanner(System.in);
      System.out.print("请输入要转换的数字:");
      int i = input.nextInt();
      String d = "";
      String n = String.valueOf(i);
      StringBuffer sb = new StringBuffer(n);
      n = sb.reverse().toString(); // 将字符串倒叙
      Map<Integer, String> map = new HashMap<Integer, String>( );
      for (int j = 0; j < n.length(); j++) {
         d = String.valueOf(n.charAt(j)); // 对map集合赋值
         map.put(j, d);
      }
      for (Integer in : map.keySet()) { // 遍历map集合
         String str = map.get(in);
         /*System.out.println(in + "     " + str);*/
         switch(str){
         case "1":str="一";break;
         case "2":str="二";break;
         case "3":str="三";break;
         case "4":str="四";break;
         case "5":str="五";break;
         case "6":str="六";break;
         case "7":str="七";break;
         case "8":str="八";break;
         case "9":str="九";break;
         case "0":str="零";break;
         }
          switch (in) { 
          case 0: jg+= str; break;
          case 1: jg+= "十"+str; break;
          case 2: jg+= "百"+str;break;
          case 3: jg+= "千"+str;break;
          case 4: jg+= "万"+str;break;
          case 5: jg+= "十"+str;break;
          case 6: jg+= "百"+str;break;
          case 7: jg+= "千"+str;break;
          case 8: jg+= "亿"+str;break;
          }       
      }
      StringBuffer sbi = new StringBuffer(jg);
      jg = sbi.reverse().toString();    
      if("一十".equals(jg.substring(0, 2))){
         jg = jg.substring(1);
         if("零".equals(jg.substring(jg.length()-1,jg.length()))){
            jg = jg.substring(0,jg.length()-1);
            System.out.println(jg);
         }else{
            System.out.println(jg);
         }
      }
      if("零".equals(jg.substring(jg.length()-1,jg.length()))){
         jg = jg.substring(0,jg.length()-1);
         System.out.println(jg);
         }
      else{
         System.out.println(jg);
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子杣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值