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

안드로이드 스튜디오 내부메모리에서 불러온뒤 equals쓰는데 인식을못합니다 ㅠㅠ도와주세요

0 추천
btncheck.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        try {
            FileInputStream inFs = openFileInput("lock.txt");
            byte[] txt = new byte[30];
            inFs.read(txt);
            inFs.close();
            String str = new String(txt); //내부메모리에 저장된값을 str에 불러옴
            str.trim();
            Toast.makeText(getApplicationContext(),str,Toast.LENGTH_SHORT).show();
            String passwd = check_ed.getText().toString(); //사용자가 입력하는 값을 passwd에 저장
            Toast.makeText(getApplicationContext(),passwd,Toast.LENGTH_SHORT).show();
            if (str.equals(passwd)){
                Intent it = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(it);
                finish();}
            else Toast.makeText(getApplicationContext(),"비밀번호가 틀렸습니다.",Toast.LENGTH_SHORT).show();
        } catch (IOException e) {
            Toast.makeText(getApplicationContext(), "파일없음", Toast.LENGTH_SHORT).show();
        }

    }
});
 
내부메모리에 저장된 값을 str에넣고 사용자가 EditText값을 입력한걸 passwd에 넣은뒤 일치하면 매인액티비티를 띄워주는 잠금화면 액티비티를만들고있는데
무슨값을 넣던 비밀번호가 틀렸습니다 부분인 else 부분이 나오네요
중간에 토스트메시지로 str과 passwd값을 출력한결과 둘다 12345로 일치하는것도 확인했습니다 어떤것이 문제일까요?
익명사용자 님이 2018년 11월 28일 질문
2018년 11월 28일 수정

2개의 답변

0 추천

파일에서 읽어오는 경우에는 

str.replaceAll("[\r\n]", ""); 

trim과는 별도로 위처럼 줄바꿈문자를 완전히 제거해 보세요.

익명사용자 님이 2018년 11월 28일 답변
제코드에 줄바꿈 코드가있나요 ??
0 추천
문자열 length 를 한번 체크해 보시고 byte 배열을 그냥 스트링으로 변환하지 말고 read에서 받아온 사이즈를 이용하여 실제 값영역만 변환하여 해보세요 .
익명사용자 님이 2018년 11월 29일 답변
...