public class Text {
  public static void main(String []args) {
    String a = "a";
    int i = Integer.parseInt(a);
    System.out.println(i);
  }
}
回答问题前请看我的文字,我是有地方不懂,不是让你们把概念再打一遍OK?
为什么会出现异常.字符串a不能转换成int类型? a不是可用ASCII码表示吗?转成工ACSII码变int变量里就得了呗.

解决方案 »

  1.   

    各字符ASCII码代表的值也只能是0-9吧
      

  2.   

    Integer.parseInt(a) 里面的a必须是0-9组成的
      

  3.   


      //弄懂这两个的区别
      String a = "a"; //String 不可以强制为转换为int
      char ch = 'a'; //可以强制为转换为int
      
      //但这些其实和Integer.parseInt(a)要抛出异常关系不大
      //你可以去看下Integer.parseInt源代码就知道 他要求传入的参数是我们认识上的数,
      //是它自己硬性规定的,就好比你自己写的为啥要抛异常一样,是你觉得你程序的需要。
      

  4.   

    我试过了.如果设置 成char型的.也不能用Interger.parseInt()转换
      

  5.   

    那是当然因为这Interger.parseInt()的规则parseInt
    public static int parseInt(String s)
                        throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 参数:
    s - 包含要解析的 int 表示形式的 String。 
    返回:
    用十进制参数表示的整数值。 
    抛出: 
    NumberFormatException - 如果字符串不包含可解析的整数。
      

  6.   

    整理下格式parseInt
    public static int parseInt(String s)
                        throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。
    除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。
    返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 参数:
    s - 包含要解析的 int 表示形式的 String。 
    返回:
    用十进制参数表示的整数值。 
    抛出: 
    NumberFormatException - 如果字符串不包含可解析的整数。
      

  7.   

    Integer.parseInt()这个函数在API哪个包和类中刚才找了下java.lang包没有
      

  8.   


    java.lang 包下
    Integer类的.parseInt()