자바에서 String 하면 문자열이 떠오를 것이다.
String str1 = "Hello";
String str2 = " World";
라고 한다면 두개의 객체가 생성되어 각각 하나의 문자열을 가진다.
그리고 이 문자열을 더하는 행위를 했을 때, 또 다른 객체를 생성하여 받아야한다.
String str = str1+str2; //"Hello World" 이렇게 되는 것이다.
이러한 행위는 메모리 할당과 메모리 해제를 발생시키기 때문에 성능이 저하된다.
그래서 대안으로 StringBuilder 가 있는 것이다.
StringBuilder는 새로운 객체를 만들어 줄 필요 없이 하나의 객체에 기존의 문자열을 덧붙이는 방식을 사용하기 때문에 부하가 적으며 상대적으로 속도도 빠르다.
따라서 긴 문자열을 더하는 상황이 발생한다면 StringBuilder를 사용하면 효과적이다.
그러면 StringBuilder의 메소드를 살펴보면서 사용 방법을 소개하겠다.
▶ append - 문자열 추가
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
Hello World
▶ delete - 문자열 제거
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.delete(2, 4); //2번자리에서 4번자리 전까지 (2,3번 자리 문자 제거)
System.out.println(sb);
Hello World
Heo World
▶ deleteCharAt - 특정 문자만 제거
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.deleteCharAt(5);
System.out.println(sb);
Hello World
HelloWorld
▶ setCharAt - 특정 위치 문자 변경
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.setCharAt(0, 't');
System.out.println(sb);
Hello World
tello World
▶ insert - 문자열 삽입
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.insert(5, "!"); //매개변수로 받은 인덱스 위치부터 문자열 삽입
System.out.println(sb);
Hello World
Hello! World
▶ reverse - 문자열 반전
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.reverse();
System.out.println(sb);
Hello World
dlroW olleH
▶ setLength - 문자열 길이 조절
현재 문자열 길이보다 짧게 설정하면 그 길이 이외의 문자열은 제거됨
현재 문자열 길이보다 길게 설정하면 공백으로 채워짐
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" World");
System.out.println(sb);
sb.setLength(7);
System.out.println(sb);
Hello World
Hello W
반응형
'JAVA > API' 카테고리의 다른 글
Math 클래스 메소드 정리 (0) | 2021.04.15 |
---|---|
[자바] String 클래스와 메소드 (0) | 2021.03.29 |
[자바] 실수의 오차를 없애주는 BigDecimal (0) | 2021.03.27 |
[자바] 숫자를 문자로 바꾸는 메소드 toString() (0) | 2021.03.27 |
[자바] Math.max(), Math.min() (0) | 2021.03.27 |