黑马程序员技术交流社区

标题: 阿拉伯数字变成大写汉字 咋换不了 [打印本页]

作者: 暴走的牛奶    时间: 2015-8-10 23:52
标题: 阿拉伯数字变成大写汉字 咋换不了
package com.itheima;
import java.util.*;
public class Test2 {
     public static void main(String[] args) {
         mothed();
      }

     public static void mothed(){
       
  
                  Scanner sc=new Scanner(System.in);
              int a=sc.nextInt();
              String s = Integer.toString(a);
         // System.out.println(s);
         
          for(int i=0;i<s.length();i++){
                  char ch=s.charAt(i);
                 // System.out.println(ch);
                  switch(ch){
                  case 0:
                          System.out.println("零");
                          break;
                  case 1:
                          System.out.println("一");
                          break;
                  case 2:
                          System.out.println("二");
                          break;
                  case 3:
                          System.out.println("三");
                          break;
                  case 4:
                          System.out.println("四");
                          break;
                  case 5:
                          System.out.println("五");
                          break;
                  case 6:
                          System.out.println("六");
                          break;
                  case 7:
                          System.out.println("七");
                          break;
                  case 8:
                          System.out.println("八");
                          break;
                  case 9:
                          System.out.println("九");
                          break;
                  default:
                          System.out.println("没有这个数字");
                          break;
                  }
          }
       }
}

作者: 金逗逗    时间: 2015-8-11 07:48
char ch=s.charAt(i);
这句话有问题:因为你下面的case都是数字,而ch是char类型的,这怎么匹配?所以打印的都是“找不到”
把ch转成int就可以了,int ch=s.charAt(i)-48;或者 int ch=Integer.parseInt(String.valueOf(s.charAt(i)));      
作者: fantianfei    时间: 2015-8-11 08:20
一楼说对了
作者: 暴走的牛奶    时间: 2015-8-17 00:39
金逗逗 发表于 2015-8-11 07:48
char ch=s.charAt(i);
这句话有问题:因为你下面的case都是数字,而ch是char类型的,这怎么匹配?所以打印 ...

减48是啥意思?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2