public class CharToInt{
    public static void main(String[] args){
     char  ch='d';
     int a=Integer.parseInt(""+ch);//红色部分为什么要加上""+,才可以运行?
     System.out.println(a);
    }
}

解决方案 »

  1.   

    我也初学者,按我的理解,parseInt是将字符串转换成整型数字,可是你的ch如果不加上"",那么它是字符型的,所以会出错,但是如果双引号中打个空格,那么就是以空格开头的字符串,是无法转换成数字的。
      

  2.   

    Integer.parseInt(String)这里的数据类型是String,ch是char类型的。要转成字符才行,不过你这里转成字符串也不能转转成数字:b=""+ch="a";Integer.parseInt(b)要报数字格式化异常,应该这样写:int a=(int)ch;//把ch强制转抱成数字
      

  3.   

    这个说法正确,但int a=(int)ch;是把ch变量中的字符型转换为ASCII码所代表的整数,例如ch='b',那么a就等于98,若你要把ch变量中的字符转换为数字而非ASCII码所代表的整数,我推荐你将ch变量定义为String型,然后用你那种转换方法.值得注意的是parseInt()方法中的参数不能有空格,要避免空格你可在参数(String型)后加上trim()方法即可解决.
      

  4.   

    以前还没有注意过呢,都用string的
      

  5.   

    b=""+ch="a";Integer.parseInt(b)可以正常运行,不会报格式化异常.
      

  6.   

    parseInt(String),参数是String型不是char型
    你传char型当然要先转为String了
      

  7.   

    红色部分为什么要加上""+,才可以运行? 
    因为Integer不支持对char类型的转换,""+是把char强转成了String类型。但" " +(双引号中打个空格就不能运行了!why?) 
    String 和 Integer相互转换是有条件的,即在ASCII码中能对应。空格也是字符,“ b”在ASCII码中找不到对应的整数。
      

  8.   

    parseInt不接受参数为char类型的数据(或对象)
    ""+ch表示将ch转换成parseInt接受的参数类型----String对象
      

  9.   

    看下API吧,Integer.parseInt方法里是要传String类型的。
    而ch是char型 ""+ch 这个表达式返回的是String
      

  10.   

    parseInt(String str)方法的参数是String类型的,也就是字符串,+是组装字符串的一种方式,可以通过它把基本数据类型组或一些特殊类型(File,String等)组装成字符串,所以必须使用+。
    也可以使用以下的方式char s='a';
    String string=Character.toString(s);
    先转换成字符串。然后使用parseInt(String str)方法。
      

  11.   

    承接18楼的答复,parseInt(String str)方法中的字符串只能是数字。不能包含特殊字符(如空格,@)或字母。
      

  12.   

    对啊
    关键还是这个parseInt(String str)里的参数
    建议多看看api
      

  13.   

    Integer.parseInt的参数是String
    你定义的是char
      

  14.   

    看API Integer中ParseInt()方法的参数!