//intent.putExtra(EXTRA_MESSAGE, "abc");
intent.getStringExtra(Home.EXTRA_MESSAGE) == "abc" // false
intent.getStringExtra(Home.EXTRA_MESSAGE) == getString(R.string.abc) //false (with R.string.abc=="abc")
String abc = "abc";
intent.getStringExtra(Home.EXTRA_MESSAGE) == abc //false
为什么一切都是假的? 如果我用吐司打印这些值,它们显然是相同的。
感谢。
答案 0 :(得分:2)
您将两个java String
&s的值与.equals进行比较:
str1.equals(str)
在这种情况下,==
会比较这两个String
是否是相同的对象,而不是false
。
答案 1 :(得分:1)
首先,您不能将字符串与== ...
进行比较您需要将两个字符串与string1.equals(string2)进行比较
然后你应该得到一个真实的"结果
希望这会有所帮助。祝你好运:)答案 2 :(得分:0)
==比较两个字符串对象是否相同。(即对象的地址)
equals()方法比较两个字符串对象是否具有相同的值。
答案 3 :(得分:0)
尝试理解此代码和下面的结果,以查看==和equals()之间的区别。然后你就会明白为什么equals()通常是你想要比较字符串的原因。
String string1 = "android";
String string2 = "android";
String string3 = new String("android");
if(string1 == string2){
System.out.print("String1 == String2");
}else{
System.out.print("String1 != String2");
}
if(string1.equals(string2)){
System.out.print("String1 equals String2");
}else{
System.out.print("String1 not equals String2");
}
if(string1 == string3){
System.out.print("String1 == String3");
}else{
System.out.print("String1 != String3");
}
if(string1.equals(string3)){
System.out.print("String1 equals String3");
}else{
System.out.print("String1 not equals String3");
}
if(string2 == string3){
System.out.print("String2 == String3");
}else{
System.out.print("String2 != String3");
}
if(string2.equals(string3)){
System.out.print("String2 equals String3");
}else{
System.out.print("String2 not equals String3");
}
结果:
>> String1 == String2
>> String1 equals String2
>> String1 != String3
>> String1 equals String3
>> String2 != String3
>> String2 equals String3
答案 4 :(得分:0)
尝试equals()
而不是==
喜欢:
//intent.putExtra(EXTRA_MESSAGE, "abc");
intent.getStringExtra(Home.EXTRA_MESSAGE).equals("abc");
intent.getStringExtra(Home.EXTRA_MESSAGE).equals(getString(R.string.abc));
String abc = "abc";
intent.getStringExtra(Home.EXTRA_MESSAGE).equals(abc);
注意:如果您使用
获取值putExtra(key, String)
设置了值,则可以使用intent.getString(key).