我的问题是:为什么在键盘输入a以后,然后就没什么反应
而将s转换成数字,例如当输入1时,就是对的
String s="";
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
   s=in.readLine();
   //i=Integer.parseInt(s);如果转换成数字,并且运行if(i==1).......时正常 
  if(i=="a") System.out.println("好了");//在这里出错了
}catch(IOException e){}谢谢了......

解决方案 »

  1.   

    楼主 try catch是用来抛出异常用的 你若想把非数字类型的字符串转成字符类型的话 那么try里的程序就会停止并执行catch里的程序 后台就会抛出异常 提示你java.lang.NumberFormatException错误 也就是格式错误
      

  2.   

    上面写错了 
    try catch是用来抛出异常用的 你若想把非数字类型的字符串转成数值类型的话 那么try里的程序就会停止并执行catch里的程序 后台就会抛出异常 提示你java.lang.NumberFormatException错误 也就是格式错误 程序就会终止 那么你在try语句块中的错误行下面的程序就不会继续执行 所以你看到什么都没有发生
      

  3.   

    实际上你在i=Integer.parseInt(s);这里出错了 那么程序就进入了catch块 那么try中的下面的 System.out.println打印程序就不会执行了
      

  4.   

    i=Integer.parseInt(s);本身就是错的  如果你输入的是数字那么没有问题 要是非数字本身就是错的 不过不会包错 因为捕捉的异常在 CATCH里面什么也没有 所以你不知道发生错误
      

  5.   

    LZ您注释掉i=Integer.parseInt(s);
    可能是您的i类型不一样
    您写的i=="a" 用于字符串比较是不正确的
    ==如果比较的是对象的话比较的是 对象引用的内存地址
    if(i=="a") System.out.println("好了")
    您把改成
    if(i.equals("a")) System.out.println("好了");