JAVA/java 공부

[JAVA] StringBuffer / StringBuilder 문자열 추가/변경 객체

congs 2023. 9. 12. 00:55

 

StringBuffer 문자열 추가/변경 객체

: 문자열을 추가하거나, 변경할 때 주로 사용하는 객체

 

1.  사용

  • String 객체 : 문자열을 표현
  • append() : 문자열 추가 끝에 추가
  • insert(index,””) : 특정 위치에 문자열 추가
  • substring(a,b) : 문자열 추출
  • = a번지부터 b-1번지까지 추출

 

2.  출력 : toString()이용

StringBuffer sb = new StringBuffer();

System.out.println(sb.toString());
System.out.println(sb.substring(0, 4)); //0~3번지까지 출력

String result = sb.toString();
System.out.println(result);

 

3.  StringBuffer       String str = "";      StringBuilder

언제 무엇을 사용할까?

  • 멀티스레드 환경: 여러 스레드가 동시에 문자열을 조작해야 하는 경우, StringBuffer를 사용하여 스레드 안전성을 보장.
  • 단일 스레드 환경: 성능이 중요한 단일 스레드 환경에서는 StringBuilder를 사용하여 불필요한 동기화 오버헤드를 피하기.
public class StringBufferEx {
	public static void main(String[] args) {

		StringBuffer sb = new StringBuffer(); //멀티스레드 환경에서 안전성이 우수
		sb.append("hello");
		sb.append(" ");
		sb.append("java");
		System.out.println(sb.toString());
		String result = sb.toString();
		System.out.println(result);

		sb.insert(0,"hi");
		System.out.println(sb.toString());
		System.out.println(sb.substring(0, 4)); //4번지는 포함하지 않음

//================================================================================
		String str = "";
		str+= "hello";
		str+= " ";
		str+= "java";
		System.out.println(str);

//=================================================================================
		StringBuilder sb1 = new StringBuilder(); //성능이 더 좋음.
		sb1.append("hello");
		sb1.append(" ");
		sb1.append("js");
		System.out.println(sb1.toString());

	}
}