String 클래스
String은 클래스이다. 따라서 기본형이 아니라 참조형이다.
String은 불변 객체이다. 따라서 생성 이후에 절대로 내부의 문자열 값을 변경할 수 없다.
String.concat()은 내부에서 새로운String 객체를 만들어서 반환한다. 따라서 불변과 기존 객체의 값을 유지한다.
속성(필드)
private final char[] value;
여기에는 String의 실제 문자열 값이 보관된다. 문자 데이터 자체는 char[]에 보관된다. String클래스는 개발자가 직접 다루기 불편한 char[]을 내부에 감추고 String`클래스를 사용하는 개발자가 편리하게 문자열을 다룰 수 있는 수 있도록 다양한 기능을 제공한다. 그리고 메서드 제공을 넘어서 자바 언어 차원에서도 여러 편의 문법을 제공한다.
기능(메서드) String클래스는 문자열로 처리할 수 있는 다양한 기능을 제공한다. 기능이 방대하므로 필요한 기능이 있으면 검색하거나 API 문서를 찾아보자.
- length(): 문자열의 길이를 반환한다.
- charAt(int index): 특정 인덱스의 문자를 반환한다.
- substring(int beginIndex, int endIndex) : 문자열의 부분 문자열을 반환한다.
- indexOf(String str) : 특정 문자열이 시작되는 인덱스를 반환한다.
- toLowerCase(), toUpperCase(): 문자열을 소문자 또는 대문자로 변환한다.
- trim() : 문자열 양 끝의 공백을 제거한다.
- concat(String str) : 문자열을 더한다.
String클래스 비교할 때는 == 비교가 아니라 항상 equals() 비교를 해야한다.
- 동일성(Identity): == 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인
- 동등성(Equality): equals() 메서드를 사용하여 두 객체가 논리적으로 같은지 확인
문자열 정보 조회
- length()` : 문자열의 길이를 반환한다.
- isEmpty()` : 문자열이 비어 있는지 확인한다. (길이가 0)
- isBlank()` : 문자열이 비어 있는지 확인한다. (길이가 0이거나 공백(Whitespace)만 있는 경우), 자바 11
- charAt(int index)` : 지정된 인덱스에 있는 문자를 반환한다.
문자열 비교
- equals(Object anObject)` : 두 문자열이 동일한지 비교한다.
- equalsIgnoreCase(String anotherString)` : 두 문자열을 대소문자 구분 없이 비교한다.
- compareTo(String anotherString)` : 두 문자열을 사전 순으로 비교한다.
- compareToIgnoreCase(String str)` : 두 문자열을 대소문자 구분 없이 사전적으로 비교한다.
- startsWith(String prefix)` : 문자열이 특정 접두사로 시작하는지 확인한다.
- endsWith(String suffix)` : 문자열이 특정 접미사로 끝나는지 확인한다.
문자열 검색
- contains(CharSequence s)` : 문자열이 특정 문자열을 포함하고 있는지 확인한다.
- indexOf(String ch) / indexOf(String ch, int fromIndex) : 문자열이 처음 등장하는 위치를 반환한다.
- astIndexOf(String ch)` : 문자열이 마지막으로 등장하는 위치를 반환한다.
문자열 조작 및 변환
- substring(int beginIndex)/substring(int beginIndex, int endIndex)` : 문자열의 부분 문자열을 반환한다.
- concat(String str)` : 문자열의 끝에 다른 문자열을 붙인다.
- replace(CharSequence target, CharSequence replacement): 특정 문자열을 새 문자열로 대체한다.
- replaceAll(String regex, String replacement)` : 문자열에서 정규 표현식과 일치하는 부분을 새 문자열로 대체한다.
- replaceFirst(String regex, String replacement)` : 문자열에서 정규 표현식과 일치하는 첫 번째 부분을 새 문자열로 대체한다.
- toLowerCase()/toUpperCase()` : 문자열을 소문자나 대문자로 변환한다.
- trim(): 문자열 양쪽 끝의 공백을 제거한다. 단순Whitespace` 만 제거할 수 있다.
- strip():Whitespace` 와 유니코드 공백을 포함해서 제거한다. 자바 11
문자열 분할 및 조합
- split(String regex)` : 문자열을 정규 표현식을 기준으로 분할한다.
- join(CharSequence delimiter, CharSequence... elements): 주어진 구분자로 여러 문자열을 결합한다.
기타 유틸리티
- valueOf(Object obj): 다양한 타입을 문자열로 변환한다.
- toCharArray(): 문자열을 문자 배열로 변환한다.
- format(String format, Object... args) : 형식 문자열과 인자를 사용하여 새로운 문자열을 생성한다.
- matches(String regex) : 문자열이 주어진 정규 표현식과 일치하는지 확인한다.
'언어 기초 > JAVA' 카테고리의 다른 글
열거형 - ENUM [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] (5) | 2024.10.10 |
---|---|
래퍼, Class클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] (2) | 2024.10.10 |
불변객체 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] (2) | 2024.09.15 |
Object클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] (3) | 2024.09.15 |
다형성 [JAVA | 학습을 위한 자료 | 김영한 자바 기본] (3) | 2024.09.13 |