2013-01-10 4 views
-4

가능한 중복으로 간주됩니다 안드로이드에
How do I compare strings in Java?(...) 경우 - 동일한 두 측면은 동일하지

메신저 새로운이 StackOverflow.In 내 첫 번째 게시물입니다 짧은 내가 아주 이상한 문제에 직면 : 일부 방법에서는 내가 사용하는 경우 (...), 그리고 두 값이 동일했다, 아직 그것은 통과하지 않습니다.

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; 
      } 
     } 

변수를 & T2는 T1에서 : 여기 일례이다 t1="123456789" & t2="123456789", 또 그들이 동일하지 않은 경우 등에는 전환되지 않는다. 그리고 동일한 두면이 동등하지 않은 것으로 간주되는 다른 장소가 있습니다 - 동일한 자바 페이지 (활동)에서 다음과 같습니다 : if(add.getText().toString()=="Add Student") : add는 기본적으로 텍스트 "Add Student"를 가진 버튼을 나타냅니다. 이 문제를 해결할 수 있습니까? 이 문제가 시작했을 때

**

, 나는 로그 캣에서보기 시작 : 당신은 자바에서 문자열을 비교하는 ==를 사용해서는 안

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

. 대신 t1.toString().equals(t2.toString())을 사용하십시오.

+0

나는 그것을 시도 할 것입니다. 어쨌든 감사합니다 – user1967122

+0

그것은 지금 작동합니다 :) Thanks a lot :) .. 나는 C#을 프로그래밍하는 데 사용하고 문자열 xD와 함께 작동합니다. x – user1967122

+1

@ user1967122이 대답을 "Accepted answer"로 표시해야합니다. – Blackbelt

1

문자열 개체에 ==을 사용하지 마십시오. 대신 t1.equals(t2)을 사용하십시오.

관련 문제