2014-09-13 70 views
1
//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 

爲什麼一切都是錯誤的? 如果我用吐司打印數值,它們顯然是相同的。什麼是getStringExtra格式

謝謝。

+0

不要使用==來比較字符串,請使用String.equals()。 – 2014-09-13 02:38:47

+0

爲什麼使用'getStringExtra()',如果你有'putExtra()'帶String,而不是你可以使用'getString()'並直接與'.equals(「你的字符串」 – 2014-09-13 04:47:10

回答

2

你「與.equals S:

str1.equals(str) 

在此背景下,==比較這兩個String是否」比較兩個Java的String值可相同的對象,他們都沒有,因而計算結果爲false

1

那麼首先,你不能比較==串...

你需要用string1.equals來比較兩個字符串(字符串2)

那麼你應該得到一個「真正的「結果。

希望這有助於。祝你好運:)

0

==比較兩個字符串對象是否相同。(對象即地址)

equals()方法比較兩個字符串對象是否具有相同的值或沒有。

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