黑马程序员技术交流社区

标题: 【新手问题求解,谢谢大家!】 [打印本页]

作者: rehan    时间: 2015-2-11 22:10
标题: 【新手问题求解,谢谢大家!】
  1. import java.io.*;
  2. import java.util.*;
  3. public class Test3
  4. {
  5.         public static void main(String[] args) throws IOException       
  6.         {
  7.                 System.out.println("请输入一串正整数数字:");
  8.                 //读取键盘输入并调用readLine()方法
  9.                 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  10.                 String str=br.readLine();
  11.                 changeMethod(str);
  12.                 br.close();
  13.         }
  14.        
  15.         //定义一个可以将字符串转换成中文输出的方法
  16.         public static void changeMethod(String str) throws IOException       
  17.         {               
  18.                 //使用查表法,之前考虑过switch方法,单代码太冗长,已放弃
  19.                 String[] arr={"零 ","一","二","三","四","五","六","七","八","九"};
  20.                 //定义一个缓冲区以提高效率
  21.                 StringBuilder sb=new StringBuilder();
  22.                
  23.                 //通过for循环遍历字符串中各个元素,并转换成相应的中文
  24.         for (int i = 0; i < str.length(); i++)
  25.         {                         
  26.                 //int x= str.charAt(i)-'0';
  27.                 int x=Integer.parseInt(str.charAt(i));
  28.                 //判断是否是数字,对符合要求数据添加进缓冲区
  29.             if(x>=0 && x<10)
  30.             {
  31.                     sb.append((arr[x]));
  32.             }
  33.             else
  34.             {
  35.                 System.out.print("-");
  36.             }                       
  37.         }
  38.         //最后将缓冲区的数据变成字符串打印在控制台上
  39.         System.out.println(sb.toString());
  40.         }
  41. }
复制代码



主要问题就是:我为什么不能将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));??或者还有什么其他方法可以将字符转换成整数?



作者: 浮夸    时间: 2015-2-12 09:14
这还新手,完全没看懂
作者: Oo不弃    时间: 2015-2-12 13:35
你将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));难道会报错?
作者: rehan    时间: 2015-2-12 14:50
Oo不弃 发表于 2015-2-12 13:35
你将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));难道会报错?

会的,其实我已经有点头绪了,就是类型不符合的原因造成的。。。




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