본문 바로가기

JAVA_이클립스

JAVA - String Buffer/String Builder/String 클래스

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