문자열을 비교하다가 이상한 점을 발견해서 질문 올립니다.

아래는 라디오버튼의 이벤트입니다.

라디오 버튼을 선택할 때마다 아래가 불리는데요..

밑에 보시면 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;

    

    }