String 생성자
Java에서는 문자열을 빌트인 클래스인 String 클래스로 관리할 수 있다.
String 클래스는 생성자가 오버로딩되어 있기 때문에 다음과 같은 형식으로 선언할 수 있다.
char[] chars = {'a', 'b', 'c'};
String str1 = new String();
String str2 = new String(chars);
String str3 = new String("abc");
String str4 = "abc";
String 클래스 메서드
String 클래스에서는 다음과 같은 유용한 메서드들을 제공하고 있다.
- char chatAt(int where)
문자열에서 인덱스 where에 위치한 문자를 반환
- void getChars(int sourceStart, int sourceEnd, char[] target, int targetStart)
해당 문자열의 sourceStart부터 sourceEnd-1 인덱스 위치의 문자열을 추출하여 target 배열에 저장
이때 target 배열의 인덱스는 targetStart부터 시작
- boolean equals(String str)
문자열 비교
* Java에서는 C++과 다르게 비교연산자가 오버로딩되어있지 않기 때문에 str1 == str2; 와 같은 코드 작성이 불가능하다.
- boolean equalsIgnoreCase(String str)
대소문자 무시하고 비교
- int compareTo(String str)
사전 순서 상으로 문자열을 비교
str이 인스턴스보다 사전 상 뒤에 있으면 음수(-1), 같으면 0, 앞에 있으면 양수(1)를 반환
- int compareToIgnoreCase(String str)
대소문자 무시하고 사전 순서 상으로 문자열을 비교
- int indexOf(String str), int indexOf(int ch)
첫번째로 str, ch가 등장한 곳의 인덱스를 반환
- int lastindexOf(String str), int indexOf(int ch)
마지막으로 str, ch가 등장한 곳의 인덱스를 반환
- boolean contains(String str)
인스턴스가 문자열 str을 포함하는지 조사
- boolean endsWith(String str)
끝나는 문자열이 str인지 조사
- String replace(char original, char replacement)
문자열의 orignal 문자를 replacement 문자로 변경
- boolean isBlank()
문자열의 길이가 0이거나 공백이 있으면 true 반환
- boolean isEmpty()
문자열의 길이가 0이면 true 반환
- int length()
문자열의 길이를 반환
- String repeat(int c)
c번 반복한 문자열을 반환
- String toLowerCase()
문자열을 모두 소문자로 변환
- String toUpperCase()
문자열을 모두 대문자로 변환
- String trim()
앞, 뒤의 공백을 제거한 문자열을 반환
- String substring(int index)
index부터 시작하는 부분 문자열을 반환
- String substring(int startIndex, int endIndex)
startIndex부터 endIndex까지의 부분 문자열을 반환
- String concat(String str)
str을 현재 문자열 뒤에 연결
* Java에서 +연산자는 오버로딩되어 있기 때문에 str1 += str2; str3 = str1 + str2; 와 같은 코드의 작성이 가능하다.
- static String join(CharSequence delimiter, CharSequence ... elements)
여러 개의 CharSequence 요소를 주어진 구분자 delimiter로 연결하여 하나의 문자열로 반환한다.
예를 들어 String result = String.join(", ", "A", "B", "C"); 라고 작성한다면 result에는 "A, B, C"가 저장된다.
* - String toString()
모든 객체에서 사용이 가능
해당 인스턴스를 문자열로 변환하여 반환
* String Class 메서드에서는 문자를 int 타입과 char 타입으로 혼용해서 사용하고 있는데
이는 초기 Java가 Unicode의 기본 평면(BMP)만 표현이 가능했기 때문이다.
비교적 최근에 추가된 메서드의 경우에는 문자를 int 타입으로 처리하고 있기 때문에 확장된 Unicode의 표현도 가능하다.
'Java > Java 문법' 카테고리의 다른 글
[Java] 수정 가능한 문자열 (StringBuffer) (0) | 2024.12.03 |
---|---|
[Java] 박싱, 언박싱, 래퍼클래스(Wrapper Class), Integer, Character (0) | 2024.12.01 |
[Java] 열거형 (enum) (0) | 2024.12.01 |
[Java] 레이스 컨디션 (Race Condition), 스레드 동기화 (synchronized) (0) | 2024.12.01 |
[Java] 스레드(Thread), 모니터(Monitor), Runnable 인터페이스 (0) | 2024.10.27 |