강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

Imking님의 프로필 이미지
Imking

작성한 질문수

김영한의 실전 자바 - 중급 1편

String 클래스 - 주요 메서드2

str.concat("!!!")) 부분 질문

작성

·

84

1


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
앞에 내용에서는 concat은 반환값이 있기 때문에

String str1 = "Hello" 일 경우 뒤에 느낌표를 붙여주기 위해서는

String str2 = str1.concat("!!!"); 이렇게 해야된다고 했는데

강의 1분 45초 부분에서 str.concat("!!!")이라고 했는데 str 뒤에 느낌표 세 개가 붙어서 출력되는 이유가 먼가요 ??

답변 2

0

안녕하세요. lmking님, 공식 서포터즈 ~입니다.

반환값을 따로 변수로 할당하지 않고 그대로 썼다고 이해해주시면 감사하겠습니다. 해당 상황에서 바로 밑에 다시 str 만 출력해보시면 str 자체는 변경되지 않은 것을 아실 수 있습니다 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. Imking님.

질문해주신 내용은 Java에서 문자열을 결합할 때 concat() 메서드의 작동 방식에 대한 궁금증으로 보입니다. concat() 메서드는 기존의 문자열에 다른 문자열을 붙여서 새로운 문자열 객체를 생성하여 반환합니다. 이때 중요한 점은 원본 문자열은 변경되지 않고, 결합한 결과가 새로운 문자열 객체로 반환된다는 것입니다.

강의에서 str.concat("!!!")를 사용할 때 출력된 값은 str에 “!!!“가 붙은 새로운 문자열입니다. 강의에서 이 부분을 직접 출력하여 본 결과가 “Hello!!!“로 출력되었을 것입니다. 하지만, 원래의 str 변수는 여전히 “Hello”를 가리키고 있습니다. concat() 메서드의 반환값을 사용하여 새로운 문자열을 출력한 것입니다.

이와 같은 동작 방식에 대해 좀 더 이해를 돕기 위한 사례를 소개드리겠습니다:

이해가 되셨기를 바랍니다. 현 베타 기능에서는 답변이 100% 만족스럽지 않을 수 있습니다. 추가적으로 궁금하신 점이 있다면, 계속해서 질문을 남겨주세요. 곧 강사님께서 명확한 답변을 제공해 주실 것입니다. 🙏

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리라고 하고 있습니다.
감사합니다!

Imking님의 프로필 이미지
Imking

작성한 질문수

질문하기