A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rehan 中级黑马   /  2015-2-11 22:10  /  771 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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));??或者还有什么其他方法可以将字符转换成整数?


3 个回复

倒序浏览
这还新手,完全没看懂
回复 使用道具 举报
你将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));难道会报错?
回复 使用道具 举报
Oo不弃 发表于 2015-2-12 13:35
你将:int x= str.charAt(i)-'0';改为:int x=Integer.parseInt(str.charAt(i));难道会报错?

会的,其实我已经有点头绪了,就是类型不符合的原因造成的。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马