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

一个关于BufferedReader的问题!求救啊!
我通过BufferedReader输入流,从键盘输入end 执行以下语句后,为什么总是输出 true???

BufferedReader shuru=new BufferedReader(new InputStreamReader(System.in));
System.out.println(shuru.readLine()!="end");

我输入的是end,与给定的"end"相同,他应该输出false才对啊!!!
这是为什么??请大家指教!
 
非常感谢!!

------解决方案--------------------
最常见错误:对象比较严禁用 ==

shuru.readLine().equals("end")
------解决方案--------------------
判断字符串内容是否相同请用equals方法。用==比较的是其对象内存地址
------解决方案--------------------
判断字符串内容是否相同请用equals方法。用==比较的是其对象内存地址
------解决方案--------------------
楼上说的没错!
------解决方案--------------------
==判断的是内存地址,用.equals()吧
------解决方案--------------------
shuru.readLine().equals("end")
------解决方案--------------------
应该用equals,
equals 与 == 的区别是:equals比较的是对象的内容, == 比较的对象引用的地址值
------解决方案--------------------
各种equals!!