关于Java中字符串的比较

问题的提出:

我在android模拟器A中想android模拟器B发送了一个字符串“add”,在模拟器B中使用

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

String str = in.readLine();

这两句将传递过来的字符串使用str变量保存,然后此后使用语句

if(“add”==str)

时,判断语句始终返回为假,不知为何?



查找资料:

熟悉C++的人对于两个字符串比较的代码一定很了解: 
(string1==string2) 
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false 
Java中必须使用string1.equals(string2)来进行判断 

补充 
如果: 
string s1=new String("Hello"); 
string s2=new String("Hello"); 
则(s1==s2)=false 

如果: 
string s1="Hello"; 
string s2="Hello"; 
则(s1==s2)=true; 
因为他们指向的同一个对象。 

如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容 。。

你可能感兴趣的:(关于Java中字符串的比较)