日期:2014-05-20  浏览次数:20731 次

初学JAVA的一个问题,关于try的
我的问题是:为什么在键盘输入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){}

谢谢了......

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


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