해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.
문자열은 불변 immutable
- 문자열 스스로를 변경하는 메소드는 없음 - ”문자열 고쳐 쓰는 거 아니다”
- 새 문자열 또는 다른 값을 반환
- ⚠️ 문자열 변수에 다른 값을 넣을 수 없다는 뜻이 아님
⭐️ 반환값과 인자의 자료형 등을 살펴볼 것
.length() : 문자열 길이 반환
빈 문자열 여부
(1) .isEmpty() : 문자열의 길이가 0인지 여부
(2) .isBlank() : 공백(white space)을 제외한 문자열의 길이가 0인지 여부
.trim() : 문자열 앞뒤의 공백 제거
.charAt(n) : 문자열 내 n번째 문자 반환
문자(열)의 위치 반환
(1) .indexOf() : 일치하는 첫 문자(열)의 위치 반환
(2) .lastIndexOf() : 일치하는 마지막 문자(열)의 위치 반환
※ 포함되지 않은 문자는 -1 반환
값 동일 여부 확인
(1) .equals() : 대소문자 구분하여 비교
(2) .equalsIgnoreCase() : 대소문자 구분없이 비교
포함 여부 확인
(1) .contains() : 포함 여부
(2) .startsWith() : (주어진 위치에서) 해당 문자열로 시작 여부
(3) .endsWith() : 해당 문자열로 끝남 여부
.matches() : 정규표현식 일치 여부 확인
참고 - 🔗 정규 표현식 - 위키백과
문자열 비교
(1) .compareTo() : 사전순 비교에 따라 양수/음수 반환
→ 해당 값을 정렬 등에 사용 가능
(2) .compareToIgnoreCase() : 대소문자 구분 없이 사전순 비교하여 양수/음수 반환
대소문자 변환
(1) .toUpperCase() : 모두 대문자로 변환
(2) .toLowerCase() : 모두 소문자로 변환
▲ ★메서드 체이닝 → String을 반환하는 메서드들은 반복해서 사용가능
.concat() : 이어붙이기
※ +연산자와의 차이
1. concat에는 문자열만 이어붙일 수 있음
2. concat은 필요 시에만 새 인스턴스 생성
3. null이 포함될 경우 +연산자는 null과 이어붙이기가 가능하지만 concat은 NullPointerException 발생
4. ★"다중 연산 시" 생성되는 문자열 인스턴스의 수가 다름★
- + 연산 → 다중 연산시 메모리 절약
- ⚠️ 반복 연산 (이후 배울 for 루프 등) 에는 무의미
- 반복 연산시에는 명시적으로 StringBuilder... append 사용
- 성능이 중요하다면 이후 배울 StringBuilder, StringBuffer 등 사용
- 그렇지 않을 시 상황에 따라 메서드 체이닝 등의 편의를 위해 concat 사용
.repeat(횟수) : 문자열을 주어진 정수만큼 반복하기
.substring() : ~번째 문자부터 (~번째 문자 전까지) 잘라서 반환
치환
(1) .replace(앞, 뒤) : 주어진 앞의 문자(열)을 뒤의 문자(열)로 치환
(2) .replaceAll(앞, 뒤) : 주어진 앞의 정규표현식에 일치하는 모든 부분을 뒤의 문자(열)로 치환
(3) .replaceFirst(앞, 뒤) : 주어진 앞의 정규표현식에 일치하는 부분 중 첫 번째만 뒤의 문자(열)로 치환
문자열을 배열로 반환
(1) .toCharArray() : 문자열을 분할하여 문자열의 배열로 반환
(2) .split() : 주어진 기준으로 (~개까지) 분할하여 문자열 배열로 반환