안드로이드 개발 질문/답변
(글 수 45,052)
TextView tv1 = (TextView) findViewById(R.id.TextView01);
TextView tv2 = (TextView) findViewById(R.id.TextView02);
String a = cursor.getString(1); // 사과가 들어있으나 X
//String a = "사과";
String b ="사과";
tv1.setText(a);
tv2.setText(b);
TextView tv3 = (TextView) findViewById(R.id.TextView03);
if (a == b) {
tv3.setText("O");
} else {
tv3.setText("X");
}
Sqlite를 사용해서 정답맞추기를 해보려고 하는데
cursor.getString(1)에는 사과가 들어있으나 String b ="사과" 와 비교해보면 false를 반환합니다
String a 를 cursor.getString(1) 가 아닌 "사과" 하면 true를 반환하네요
이거 왜이러는 걸까요 ㅠㅠ
자바 개념을 조금 더 공부하셔야 할 것 같아요.
결론만 말씀드리면 사과라는 문자를 비교하시려면 ==를 사용하시는게 아니라 equal을 사용하셔야 합니다.
if문에 if(a.equals(b)) 이런 식으로 해야 한다는 거죠..
참고로 a == b가 false가 반환되는 이유는 a와 b의 주소값이 다르기 때문입니다.