키보드워리어

[자바] 참조자료형 String의 이해 - String은 불공변 - 3 본문

JAVA/입문

[자바] 참조자료형 String의 이해 - String은 불공변 - 3

꽉 쥔 주먹속에 안경닦이 2023. 1. 26. 10:10
728x90

안녕하세요 키보드 워리어입니다.

 

오늘은 String이 불공변하다는 것을 살펴볼 텐데요.

 

String은 수정이 불가능하다.

String은 불공변(immutable)하므로 문자열을 수정하기 위해서 새로운 문자열을 생성해 주는 메서드를 사용합니다.

 

 특정 String에서 변경된 String을 가져오는 법을 살펴보겠습니다.

 

String.concat()메서드
String.concat()

Concat 메서드는 기존 String에서 신규 String 값을 추가해 주는 역할을 해요.

 

변경된 값을 저장시키는 것은 아닙니다. 그냥 str을 출력하면 in28 Minutes만 출력되죠.

 

그래서 String anotherString = str.concat(“is awesome”) 이런 식으로 새로운 String을 만들면서 추가시키는 거예요~

 

이외에도 텍스트 전체를 대문자로 만드는 toUpperCase()메서드

텍스트 전체를 소문자로 만드는 toLowerCase()메서드가 있고,

 

스트링 시작 혹은 끝에 있는 간격을 없애고 싶다면 trim() 메서드가 있습니다. (앞 뒤 간격 spcase공간 없애주는 기능).

 

String Concatenation(결합)과 Join, Replace 메서드

Number 타입 연산자에서 + 는 숫자를 더해주지만 String에선 조금 달라요.

+ 연산이 하는 역할을 보시면 다음과 같아요.

+연산의 역할
+연산의 역할

$1 ==> 숫자의 연산 역할

$2 ==> String을 묶어준 역할

$3 ==> String을 묶어준 역할

$4 ==> String을 묶어준 역할

$5 ==> 숫자의 연산 역할

$6 ==> String을 묶어준 역할

$7 ==> 숫자 먼저 연산해 주고 뒤에 스트링을 묶어준 역할

 

자바에서 표현이 검토되는 방향은 왼쪽부터 오른쪽입니다.

그래서 $7은 정수가 나와서 연산한 후에 String으로 묶어준 것이고

$6은 String을 묶어줘야 하기 때문에 1과 2가 결합되고 12는 다시 String이기 때문에 여기에 3을 추가해 주는 거죠.

결국 123이 된 것이에요.

 

괄호 (parentheses)가 묶여있을 때는 다른 값을 출력합니다.

괄호가 묶여있을때 연산차이
괄호가 묶여있을때 연산차이

첫 번째 프린트는 결합연산이 사용되었어요. String과 정수가 결합된 값이 출력된 거죠.

끝에 더하기 20을 추가해 준 두 번째 프린트도 확인해 볼 수 있어요 결합연산인 거죠.

여기서 좀 다른 것은 40을 출력하게 하는 건데요. 괄호를 넣어주면 됩니다.

괄호를 사용하게 되면, 괄호 안에 있는 것들이 우선순위를 가지게 되는 겁니다.

 

 

Join()

Join()메서드
Join()메서드

join메서드의 경우는 처음 나온 String을 이후에 나오는 String사이에 넣어달라는 뜻이 됩니다.

Join()메서드
Join()메서드2

이런 메서드들은 많이 써보면서 역할을 이해하는 걸 추천드립니다.

 

같은 String 안에서 값을 구분하고 싶을 때 join은 유용하게 사용됩니다.

 

Replace()

Replace()메서드
Replace()메서드 사용 예시
Replace()메서드 사용 예시2

String쓰고 .(닷) 입력 후 tab을 누르면 따라오는 기능들을 쉽게 살펴볼 수 있습니다.

자바 api에 대해 공부하는 또 하나의 방법은 인터넷에 클래스에 대해 정리된 사이트를 보는 것도 추천드립니다.

 

<자바 문헌 바로가기 클릭>

728x90