以下是昨天晚上看java.io时写的一个练习:
String str;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
do
{
str=br.readLine();
System.out.println(str);
if(str=="string")
[statements];
}while(!str.equal("quit"));
输入正常,输出也正常,可if却不执行即使条件符合,始终不明白是怎么回事?
还有在最后一行判断循环条件的时候用str!="quit"为什么无法终止?
尚在学习中,希望大家多多指教帮助.
String str;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
do
{
str=br.readLine();
System.out.println(str);
if(str=="string")
[statements];
}while(!str.equal("quit"));
输入正常,输出也正常,可if却不执行即使条件符合,始终不明白是怎么回事?
还有在最后一行判断循环条件的时候用str!="quit"为什么无法终止?
尚在学习中,希望大家多多指教帮助.
解决方案 »
- javamail 收取附件问题
- 子类如何访问继承了父类的私有成员变量?
- 如何在java中操作word?
- 如何得到一个网页上面的所有连接阿
- 读Thinking in java 遇到困难。
- 比较基础的问题
- 如何将字符串的合并以最快的速度实现??
- Java与Delphi、C++相比,哪一点值得我们留口水....;.
- 在j2se1.4下运行assert (2+2)==5;出现warning: as of release 1.4, assert is a keyword, and may not be used as an identifier
- 有谁会JAVA3D,大家来讨论一下
- 用rs.getString(1)访问数据库 所遇到的问题
- 用Socket写的实现Smtp的邮件发送端。
class BF{
public static void main(String args[]) throws IOException
{
String str;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
do
{
str=br.readLine();
System.out.println(str);
if(str.equals("string"));
System.out.println("String here!");
}while(!str.equals("quit"));
}
}
这样写问题就解决了
原因是你没弄懂equals的原理,==比较的是表层的东西,而所有外覆类的equals都是比较对象的内容的
请楼主注意