문자열을 비교하다가 이상한 점을 발견해서 질문 올립니다.
아래는 라디오버튼의 이벤트입니다.
라디오 버튼을 선택할 때마다 아래가 불리는데요..
밑에 보시면 rb.getText(); 가 현재 체크된 라디오 버튼의 텍스트를 받아옵니다.
근데 이게 String형식이 아니고 charsequence 형식입니다.
그래서 아래와 같이 String.valueOf(rb.getText());으로 해서 String 변수에 넣어주었습니다.
그런데 String.valueOf(rb.getText())를 찍어보면 main이라고 나오는데
막상 main과 문자열비교를 해보면 서로 다르다고 나옵니다.
이유가 뭘까요?ㅠㅠ
그래서 밑의
if(getBookshelfName.equals("main"))
{
Toast.makeText(getApplicationContext(), getBookshelfName, Toast.LENGTH_SHORT).show();
}
여기 토스트가 뜨질 않아요ㅠㅠㅠㅠ
형변환을 잘못한건가요? 스트링의 문자열 비교는 equals로 하자나요ㅠ
그래서 String a = "main"을 만들고 비교를 해줬는데 또 이건 잘 비교가 되서 토스트가 뜹니다.
무엇이 문제인지 조언 부탁드립니다..ㅠㅠ
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rb = (RadioButton) findViewById(checkedId);
getBookshelfName = String.valueOf(rb.getText());
String a = "main";
if(a.equals("main"))
{
Toast.makeText(getApplicationContext(), getBookshelfName, Toast.LENGTH_SHORT).show();
}
if(getBookshelfName.equals("main"))
{
Toast.makeText(getApplicationContext(), getBookshelfName, Toast.LENGTH_SHORT).show();
}
int aa = 0;
}
혹시 모르니 trim()메소드로 앞뒤 공백을 제거해 주세요.