2013-01-10 25 views
-4

可能重複:
How do I compare strings in Java?如果(...) - 等邊被認爲是不相等

即時通訊新到Android,這是我在StackOverflow.In的第一篇文章總之,我面對一個非常奇怪的問題: 在我使用的一些方法中,如果(...)和兩個值都相等,但它不通過if。 下面是一個例子:

String []s=db.getStudentsNames(); 
     String []t=CopyNames(s); 
     String t1,t2; 

     t2=Id.getText().toString(); 
     for(int i=0;i<s.length;i++) 
     { 
      t1=t[i].substring(t[i].indexOf("-")+1).toString(); 
      Notifications(t[i].substring(t[i].indexOf("-")+1).toString()); 
      if(t1.toString()==t2.toString())//Problem! 
      { 
       Notifications("Id already exists for "+t[i].substring(0,t[i].indexOf("-")).toString()); 
       return false; 
      } 
     } 

變量點t1 & T2是:t1="123456789" & t2="123456789",但它不進入,如果像他們是不相等的。 還有其他地方被認爲是不相等的兩個平等 - 在相同的Java頁面(活動),如: if(add.getText().toString()=="Add Student"):添加是指一個按鈕,其默認情況下,有一個文本:「添加學生」 所以如何我可以解決這個問題嗎?

**時,這個問題開始,我就開始在logcat中看到:

W/KeyCharacterMap(282): No keyboard for id 0 

W/KeyCharacterMap(282): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 

D/dalvikvm(282): GC_FOR_MALLOC freed 5438 objects/256800 bytes in 73ms 
+4

使用't1.toString()。equals(t2.toString())'。你現在正在做的是測試內存中的引用指針。 – DeeV

+1

解決方案在這裏:http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – Tomik

回答

4

你不應該使用==在Java中比較字符串。改爲使用t1.toString().equals(t2.toString())

+0

我會嘗試它..謝謝任何方式 – user1967122

+0

它現在的作品:)非常感謝: )..我曾經編程的C#和那裏==適用於字符串xD – user1967122

+1

@ user1967122你應該將此答案標記爲「接受的答案」 – Blackbelt

1

對String對象從不使用==。改爲使用t1.equals(t2)

相關問題