마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

string 문자 비교입니다.

0 추천
private String random;
private String nickname;
 
random=StaticObj.rannum;
num=number.getText().toString();
 
Log.d("num",num);
Log.d("random",random);
len=random.length();
numlen=num.length();
Log.d("ranlen",len+"");
Log.d("numlen",numlen+"");
 
if(num==random){
e_thread = new UpdateEmail();
e_thread.start();
}else{
Toast.makeText(Confirm.this, "인증번호가 다릅니다.",
Toast.LENGTH_SHORT).show();
}

==================================

 

소스는 대충 이럽니다. random 이란 스트링 변수는

 

String random =System.currentTimeMillis()+"";
random = random.substring((random.length()-4),
random.length());
StaticObj.rannum=random;
 
이렇게 만들어졌습니다. 
 
그리고 num 이란 스트링 변수는 그냥 에디트 입력창에 쓴겁니다. 
 
그리고 결과값을 비교하는건데 로그는 이렇습니다
=========================
04-28 18:35:48.345: D/num(29640): 5379
04-28 18:35:48.345: D/random(29640): 5379
04-28 18:35:48.345: D/ranlen(29640): 4
04-28 18:35:48.345: D/numlen(29640): 4
==============================
중간에 쓰레기값이 있나 보려고 렝스 찍어봐도 같습니다 
 
그런데 계속 else 로 빠지는데 뭐가 문제인지 모르겠습니다. 

if문에 왜 못들어 가는걸까요 ㅜㅜ

숀화이트 (3,370 포인트) 님이 2014년 4월 28일 질문

1개의 답변

+2 추천
 
채택된 답변

제목보고 혹시나 했는데 역시나군요.. equals 메소드를 사용하세요.

코드론 if(num==random) 대신 if(num.equals(random)) 를 사용하시면 됩니다. 

자세한건 아래 URL을 참조하시면 됩니다.


http://kmj1107.tistory.com/entry/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4string-%EB%B9%84%EA%B5%90-equals%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-equals%EC%9D%98-%EB%B0%98%EB%8C%80

사악미소 (65,330 포인트) 님이 2014년 4월 28일 답변
숀화이트님이 2014년 4월 29일 채택됨
아 이런 멍청한 짓을;; 감사합니다;;
...