자바 문자열 관련 클래스
- 자바에서 문자열을 표현하기 위해 기본 라이브러리에 String 클래스를 제공하고 있습니다.
- String 클래스는 문자열과 관련된 작업을 수행하기 위해 많은 메서드를 포함하고 있습니다.
- 또한 문자열을 분리하거나 생성된 문자열의 조정이 필요할 경우 사용하기 위해 StringBuilder 클래스와 StringBuffer 클래스, StringTokenizer 클래스 등을 별도로 제공하고 있습니다.
- 각 클래스의 역할은 아래와 같습니다.
- String: 문자열을 저장하고 조작하는데 사용됩니다.
- StringBuilder: 문자열이 추후에 변경이나 추가가 필요할 경우 사용됩니다.
- StringBuffer: 문자열 추후에 변경이나 추가가 필요할 경우 사용되며 멀티스레드 환경에 사용하기 위해 사용합니다.
- StringTokenizer: 생성된 문자열을 구분해야 할 경우 사용됩니다.
String 클래스
- String 클래스는 문자열을 저장하고 조작할 때 사용됩니다.
- String 클래스는 String 타입 변수에 담을 리터럴을 직접 입력하는 방식과 다른 클래스와 같이 new 키워드를 통해 생성하는 방식 모두 가능합니다.
- String 클래스로 생성된 문자열은 불변(final) 속성을 가지기 때문에 이를 연산에 활용할 경우 기존 인스턴스는 버려지고 새로운 문자열이 생성됩니다.
- 이에 따라 String 클래스로 생성된 문자열에 잦은 변경이 발생한다면 메모리 공간이 낭비될 수 있습니다.
- String 클래스 주요 메서드
- charAt(int index): 문자열의 순번(index)에 해당하는 문자(char)를 char 타입으로 반환합니다.
- concat(String str): 메서드를 사용할 문자열과 매개변수에 입력한 문자열을 결합하여 String 타입의 문자열으로 반환합니다.
- contains(CharSequence s): 특정 문자(s)를 포함하고 있는지 확인하여 boolean 타입으로 반환합니다.
- indexOf(String str): 특정 문자가 있는 위치를 int 타입으로 반환합니다.
- length(): 문자열의 길이를 int 타입으로 반환합니다.
- repeat(int count): 매개변수에 입력한 수(count)만큼 반복한 문자열을 String 타입으로 반환합니다.
- replace(char oldChar, char newChar): 기존 문자열에 포함되어 있는 문자(oldChar)를 매개변수의 새로운 문자(newChar)로 변경 후 String 타입으로 반환합니다.
- replaceAll(String regex, String replacement): 기존 문자열에 포함되어 있는 문자를 정규 표현식(regex)을 적용하여 변경(replacement) 후 String 타입으로 반환합니다.
- split(String regex): 문자열을 특정 문자(regex)를 기준올 분리하여 생성한 String[] 타입으로 반환합니다.
- subString(int beginIndex, int endIndex): 시작점(beginIndex)와 끝점(endIndex)까지의 문자들을 별도의 문자열로 만들어 String 타입으로 반환합니다.
- trim(): 문자열의 앞뒤의 공백을 제거한 후에 String 타입으로 반환합니다.
- static valueOf(): static 메서드로 기본 타입의 리터럴을 String 타입으로 변경하여 반환합니다.
StringBuilder 클래스
- StringBuilder 클래스는 String 클래스와 다르게 생성된 문자열의 값을 변경하거나 추가할 수 있습니다.
- StringBuilder는 내부적으로 버퍼(Buffer)라는 최소 16개의 문자를 더 저장할 수 있는 별도의 공간을 가집니다.
(이 버퍼는 인스턴스를 생성할 때 매개 변수를 통해서 크기를 설정 가능) - 따라서 일반적인 String 클래스보다 더 큰 용량을 차지하지만, String 클래스와 달리 생성된 인스턴스에 변경을 가할 수 있습니다.
- StringBuilder 클래스 주요 메서드
- append(String str): 문자열 끝에 특정 값을 추가한 후 StringBuilder 타입으로 반환합니다.
- charAt(int index): 매개변수의 순서(Index) 위치의 문자를 char 타입으로 반환합니다.
- delete(int start, int end): 문자열의 시작 위치(start)부터 끝 위치(end)까지의 문자열을 제거하고 StringBuilder 타입으로 반환합니다.
- deleteCharAt(int index): 지정한 순서(index) 위치의 문자를 제거한 후에 StringBuilder 타입으로 반환합니다.
- indexOf(String str): 매개변수의 문자열(str)이 어느 순서(index)에 위치하는지를 int 타입으로 반환합니다.
- insert(int offset, String str): 지정한 문자열의 위치(offset)에 데이터를 삽입하여 StringBuilder 타입으로 반환합니다.
- length(): 문자열의 길이를 int 타입으로 반환합니다.
- replace(int start, int end, String str): 문자열 중 시작 인덱스(start)부터 종료 인덱스(end)까지를 매개 변수의 str로 변환한 후 StringBuilder 타입으로 반환합니다.
- reverse(): 문자열을 역순으로 배열하여 StringBuilder 타입으로 반환합니다.
- subString(int start, int end): 문자열 의 지정한 시작 위치(start)부터 끝 위치(end)까지 분리하여 String 타입으로 반환합니다.
- toString(): 문자열을 String 타입으로 반환합니다.
StringBuffer 클래스
- StringBuffer 클래스도 StringBuilder 클래스와 같이 생성된 문자열의 값을 변경하거나 추가할 수 있는 클래스입니다.
- 따라서 대부분 지원하는 기능은 StringBuilder 클래스와 동일하지만, StringBuffer의 경우 멀티스레드 환경에서 동기화를 지원합니다.
- 하지만 동기화 여부를 검사하기 때문에 StringBuilder에 비해 속도가 다소 떨어질 수 있습니다.
- StringBuffer의 주요 메서드
- append(String str): 문자열 끝에 특정 값을 추가한 후 StringBuffer 타입으로 반환합니다.
- charAt(int index): 매개변수의 순서(Index) 위치의 문자를 반환
- delete(int start, int end): 문자열의 시작 위치(start)부터 끝 위치(end)까지의 문자열을 제거하고 StringBuffer 타입으로 반환합니다.
- deleteCharAt(int index): 지정한 순서(index) 위치의 문자를 제거한 후에 StringBuffer 타입으로 반환합니다.
- indexOf(String str): 매개변수의 문자열(str)이 어느 순서(index)에 위치하는지를 int 타입으로 반환합니다.
- insert(int offset, String str): 지정한 문자열의 위치(offset)에 데이터를 삽입하여 StringBuffer 타입으로 반환합니다.
- length(): 문자열의 길이를 int 타입으로 반환합니다.
- replace(int start, int end, String str): 문자열 중 시작 인덱스(start)부터 종료 인덱스(end)까지를 매개 변수의 str로 변환한 후 StringBuffer 타입으로 반환합니다.
- reverse(): 문자열을 역순으로 배열하여 StringBuffer 타입으로 반환합니다.
- subString(int start, int end): 문자열 의 지정한 시작 위치(start)부터 끝 위치(end)까지 분리하여 String 타입으로 반환합니다.
- toString(): 문자열을 String 타입으로 반환합니다.
StringTokenizer 클래스
- StringTokenizer 클래스는 특정한 하나의 구분자를 이용하여 문자열을 분리하는 기능을 제공하는 클래스입니다.
- 기본 라이브러리에 해당하는 클래스는 아니기 때문에 java.util.StringTokenizer 클래스를 import 해주어야 사용할 수 있습니다.
- 컨스트럭터를 통해서 생성부터 문자열을 잘라서 가지고 있을 수 있습니다.
(Token은 구분자로 나뉘어진 문자열 묶음 단위) - Stringtokenizer 클래스 컨스트럭터
- StringTokenizer(String str): 구분자를 받지 않고 공백(스페이스)를 기준으로 문자열 분리하여 생성합니다.
- StringTokenizer(String str, String delim): 구분자(delim)를 바탕으로 문자열을 분리하여 token을 동시에 생성합니다.
- StringTokenizer(String str, String delim, boolean returnDelims): 구분자까지 토큰으로 취급하여 생성합니다.
- StringTokenizer 클래스 주요 메서드
- countTokens(): 현재 남아 있는 Token의 개수를 int 타입으로 반환합니다.
- hasMoreElements(): 현재의 커서 위치 기준으로 반환할 개체가 남아있는지 여부를 반환합니다.
- hasMoreToken(): 현재의 커서 위치 기준으로 반환할 token이 남아있는지 여부를 반환합니다.
- nextElement(): 현재 커서의 다음 위치에 있는 오브젝트를 Object 타입으로 반환합니다.
- nextToken(): 현재 커서의 다음 token의 문자열을 String 타입으로 반환합니다.
- nextToken(String delim): 구분자를 delim으로 변경한 후에 다음 token을 String 타입으로 반환합니다.
'Programing Language > Java' 카테고리의 다른 글
[Java] 자바 수학 관련 클래스(Java Math Class) (0) | 2022.07.23 |
---|---|
[Java] 자바 기본 자료형 관련 클래스(Java Wrapper Class) (0) | 2022.07.22 |
[Java] 자바 시스템 관련 클래스(Java System Class) (0) | 2022.07.20 |
[Java] 자바 오브젝트 클래스(Java Object Class) (0) | 2022.07.18 |
[Java] 자바 표준 라이브러리(Java Standard Library) (0) | 2022.07.18 |