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

문자(SMS)가 왔을 때 특정 단어를 인식하는 코딩질문입니다.

0 추천
Intent smsIntent = new Intent(context, SMS_Receive.class);
        smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        smsIntent.putExtra("MessageNumber",
 messages.getOriginatingAddress());
        smsIntent.putExtra("Message",
 messages.getMessageBody().toString());


        try {
            if ("Message".contains("잠새")) {

                messages.getMessageBody().toString().replace("잠","참");
                
            }
        } catch (Exception e) {
            return;
        }

        context.startActivity(smsIntent);


        // Todo : Show Message In Toast
        Toast.makeText(context, "SMS Received From :"
                + messages.getOriginatingAddress()
 + "\n" + messages.getMessageBody(), Toast.LENGTH_LONG).show();
    }
}
SMS_Receive클래스에는 각각 "Message"와"MessageNumber"에
 내용가 수신번호가 들어가도록 코딩했습니다.
여기서 궁금한것이 try구문 안에 내용인데요,
문자내용인 "Message" 안에 "잠새"이라는 단어가 있다면
 문자내용을 String형태로 불러오면서 "잠" 을 "참" 으로 바꿔주는 구문입니다.
그리고 마지막 구절들을 통해 바뀌든 안바뀌든 문자내용을
 앱상에 표시해주는 구문을 만들어보았는데,
생각처럼 바뀌지가 않네요. 어디가 문제인걸까요?
익명사용자 님이 2018년 6월 4일 질문

1개의 답변

0 추천
String의 replace() 함수는 자체 String을 변경하지 않고, return값으로 새로운 replace된 String을 반환합니다.

따라서 위의 코드로는 getMessageBody() 내에 String에 영향을 줄 수 없습니다.
디자이너정 (42,810 포인트) 님이 2018년 6월 5일 답변
어떤 코딩을 쓰는것이 좋을까요?
...