什么是getStringExtra格式

时间:2014-09-13 02:36:54

标签: java android

//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

为什么一切都是假的? 如果我用吐司打印这些值,它们显然是相同的。

感谢。

5 个答案:

答案 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).

获取值