String vs String Buffer, String Builder
String
● 불변(immutable)의 속성을 가지고 있음
● 변하지 않는 문자열을 자주 읽어들일 경우 좋음
● 자주 사용할수록 인스턴스를 만들기 때문에 느려진다는 단점이 있음
StringBuffer, StringBuilder 공통점
● String을 보완하기 위한 클래스
● 가변성을 가짐
StringBuffer, StringBuilder 차이점
● StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전함
● String Builder는 동기화를 지원하지 않아 멀티쓰레드 환경에서 쓸 수 없음.
다만 단일쓰레드에서의 성능은 StringBuffer보다 좋음
환경별 정리
String : 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 됨
StringBuffer 클래스 사용 방법

StringBuffer 이름 = new StringBuffer("문자열");
StringBuilder 클래스 사용 방법

StringBuilder이름 = new StringBuilder("문자열");
StringBuffer(Builder도 유사) 클래스 주요 메서드
| StringBuffer append(boolean b) | boolean 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(char b) | char 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(char[ ] str) | 문자 배열 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(char[ ] str, int offset, int len) | 문자 배열의 len개의 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(double b) | double 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(float f) | float 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(int i) | int 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(long l) | long 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(Object obj) | 객체 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(String str) | 문자열 데이터를 현재 문자열 끝에 추가 |
| StringBuffer append(StringBuffer sb) | 문자열 데이터를 현재 문자열 끝에 추가 |
| int capacity() | 현재 문자열의 총 용량을 반환 |
| char charAt(int index) | index 위치의 문자를 반환 |
| StringBuffer delete(int start, int end) | start에서 end까지의 문자열 중에서 삭제한 문자열을 반환 |
| StringBuffer delete(int index) | index 위치의 문자를 제거한 문자열을 반환 |
| StringBuffer deleteCharAt(int index) | index위치의 문자를 제거한 문자열 반환 |
| int indexOf(String str) | str 문자열의 인덱스 위치 반환 |
| int indexOf(String str, int fromIndex) | 특정 위치로부터 시작하여 str문자열의 인덱스 위치 반환 |
| StringBuffer insert(int offset, boolean b) | offset 위치에 boolean 데이터를 삽입 |
| StringBuffer insert(int offset, char c) | offset 위치에 char 데이터를 삽입 |
| StringBuffer insert(int offset, char[] str) | offset위치에 문자 배열 데이터 삽입 |
| StringBuffer insert(int index, char[] str, int offset, int len) | offset 위치에 문자 배열의 일부 문자 데이터 삽입 |
| StringBuffer insert(int offset, double d) | offset위치에 double 배열 데이터 삽입 |
| StringBuffer insert(int offset, float f) | offset위치에 float 배열 데이터 삽입 |
| StringBuffer insert(int offset, int i) | offset위치에 int 데이터 삽입 |
| StringBuffer insert(int offset, long i) | offset위치에 long 데이터 삽입 |
| StringBuffer insert(int offset, String str) | offset위치에 문자 데이터 삽입 |
| StringBuffer insert(int offset, Object obj) | offset 위치에 객체 데이터 삽입 |
| int lastIndexOf(String str) | str의 최종 인덱스 위치를 반환 |
| int lastIndexOf(String str, int fromIndex) | fromIndex로부터 시작하여 str의 최종 인덱스 위치 반환 |
| int length() | 문자열 내의 문자 개수를 반환 |
| StringBuffer replace(int start, int end, String str) | start에서 end 문자열을 str문자열로 대체해 반환 |
| StringBuffer reverse() | 문자열의 역순으로 된 문자열 반환 |
| void setCharAt(int index, char ch) | index 위치의 문자를 ch 문자로 설정 |
| void setLength(int newLength) | 문자열의 버퍼 크기를 새롭게 설정 |
| String substring(int start) | start 위치로부터의 일부 문자열 반환 |
| String substring(int start, int end) | start에서 end까지의 일부 문자열 반환 |
| String toString() | String으로 변환 |
String 주요 메서드
| char charAt(int index) | 해당 문자열의 특정 인덱스에 해당하는 문자 반환 |
| int compareTo(String str) | 두 개의 String을 앞에서부터 순차적으로 비교하다가 틀린 부분이 있으면 비교하는 String에 값을 반환(문자비교) |
| int compareTolgnoreCase(String str) | 해당 문자열을 인수로 전달된 문자열과 대소문자를 구분하지 않고 사전 편찬 순으로 비교 |
| String concat(String str) | 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열 변환(문자와 문자의 결합) |
| int indexOf(int ch) int indexOf(String str) |
해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환 |
| int indexOf(int ch, int fromIndex) int indexOf(String str, int fromlndex) |
해당 문자열에서 특정 문자나 문자열이 전달된 인덱스 이후에 처음으로 등장하는 위치의 인덱스 반환 |
| int lastIndexOf(int ch) | 해당 문자열에서 특정 문자가 마지막으로 등장하는 위치의 인덱스 반환 |
| int lastIndexOf(int ch, int fromIndex) | 해당 문자열에서 특정 문자가 전달된 인덱스 이후에 마지막으로 등장하는 위치의 인덱스를 반환함 ( 즉, 특정 문자나 문자열이 뒤에서부터 처음 발견되는 인덱스를 왼쪽에서 몇번째 위치하는지를 반환하며 찾지못헀을 경우 -1반환) |
| String[] split(String regex) | 해당 문자열을 전달된 정규 표현식에 따라 나눠서 반환 (문자열 나누기, 배열로 반환함) |
| String substring(int beginIndex) | 해당 문자열의 전달된 인덱스부터 끝까지를 새로운 문자열로 반환 (문자열 절삭) |
| String substring(int begin, int end) | 해당 문자열의 전달된 시작 인덱스부터 마지막 인덱스까지를 새로운 문자열로 반환 |
| String toLowerCase() | 해당 문자열의 모든 문자를 소문자로 변환 |
| String toUpperCase() | 해당 문자열의 모든 문자를 대문자로 변환 |
| String trim() | 해당 문자열의 맨 앞과 맨뒤에 포함된 모든 공백 문자 제거 |
| length | 해당 문자열의 길이 반환 |
| isEmpty() | 해당 문자열의 길이가 0이면 true, 아니면 flase 반환 |
| startWith() | 문자열이 지정한 문자로 시작하는지 판단. 같으면 true 아니면 false반환 (대소문자 구별함) |
| endWith() | 문자열 마지막에 지정한 문자가 있는지 판단. 있으면 true 아니면 false 반환 |
| equals() | 두개의 String에 값만 비교. 같으면 true, 다르면 false 반환 |
| indexOf() | 지정한 문자가 문자열에 몇번째에 있는지 반환 |
| replace | 문자열에 지정한 문자가 있으면 새로지정한 문자로 바꿔 출력 (문자 치환) |
| replaceAll | 정규표현식을 지정한 문자로 바꿔서 출력 |
| substring | 문자열에 지정한 범위에 속하는 문자열 반환(시작범위에 값은 포함하고, 끝나는 범위에 값은 포함하지 않음) |
| toString | 문자열을 그대로 반환 |
| trim | 문자열에 공백을 없앰 |
| valueOf | 지정한 개체의 원시 값을 반환 |
| contains | 두 개의 String을 비교해서 비교대상 String을 포함하고 있으면 true, 다르면 false 반환(문자 포함여부) |
| format | 서식 문자열을 이용해 서식화된 문자열 반환 |
| matches | 지정한 정규표현과 일치할 때 true 반환 |
| replaceFirst | 문자열에 지정한 문자가 있으면 첫번째만 새로지정한 문자로 바꿔 출력 |

다는 쓸 수 없지만 대표적으로 위의 예시처럼 사용함.
'JAVA_이클립스' 카테고리의 다른 글
| JAVA - Wrapper Class(래퍼 클래스) (0) | 2023.02.18 |
|---|---|
| JAVA - StringTokenizer 클래스 (0) | 2023.02.18 |
| JAVA - Inner 클래스 / 익명클래스/ Thread (0) | 2023.02.11 |
| JAVA - VO/DTO (0) | 2023.02.09 |
| JAVA - Exception / throw/ throws (0) | 2023.02.09 |