Kotlin 문법 : StringBuilder()
0️⃣ StringBuilder()는?
일반적으로 문자열은 String인데, 프로그래머스를 통해 문제를 풀다보면 StringBuilder()를 활용하는 경우가 정말 많다.
그 둘의 차이점이 무엇이길래 다르게 이용하는 것일까?
String은 immutable 객체다. 우리가 String을 통해 연산을 하면 + 또는 - 연산자를 이용하는데, string1 + string2 와 같은 연산을 하면 새로운 String을 생성한다. 기존에 참조하고 있던 값에 연산하는 것이 아닌 추가된 문자열을 갖는 새로운 String을 생성 후 참조를 바꾸는 형식인 것이다. 연산이 많아질 수록 자원 관리가 비효율적이게 되는 것이다.
때문에 이렇게 자원을 낭비하지 않기 위해 나온 것이 StringBuilder이다. StringBuilder는 문자열끼리 연산할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터를 더하는 방식을 이용한다. 참조를 바꾸는 것이 아니라 참조하고 있는 값을 바꾸는 것이다.
따라서 문자열을 연산하는 작업이 많을 경우 StringBuilder를 사용해야 메모리 사용이 효율적이고 속도가 빠르다.
1️⃣ StringBuilder() 사용하기
fun main():String {
val str = StringBuilder()
println("1. 초기값 : $str") // 빈 객체 생성
// 값 추가
str.append(1) // Int 타입
str.append("string") // String 타입
str.append('S') // Char 타입
str.append(true) // Boolean 타입
println("2. append한 값 : $str") // "1stringStrue"
// 값 삭제
sb.setLength(0) // sb에 저장된 값 삭제
println("3. setLength한 값 : $str") // 빈 객체 (값 초기화)
return str.toString()
}
- StringBuilder()로 선언하면 빈 객체가 생성된다.
- append를 통해 값을 더할 수 있다.
- setLength를 통해 값을 삭제할 수 있다.
- StringBuilder 내부의 값을 출력 또는 사용하기 위해선 toString() 해준다.
그 외의 다양한 메소드를 사용할 수 있지만 우선 기본적인 것만 써본다.
❗ 출처
참고 사이트1 : https://notepad96.tistory.com/96
Kotlin StringBuilder - 문자열 효율적으로 다루기
1. StringBuilder String 문자열은 참조 타입으로써 만약 문자열 뒤에 문자열을 추가하는 것 같은 수정하는 작업을 한다면 기존 참조하고 있던 곳에 추가하는 것이 아니라 추가된 문자열을 갖는 새로 S
notepad96.tistory.com
참고 사이트2 : https://hardlearner.tistory.com/288
자바 StringBuilder 사용법 및 사용하는 이유
StringBuilder 사용법 및 사용하는 이유 자바에서 문자열하면 자연스럽게 String이 떠오른다. String은 소위 불변(immutable)객체라고 한다. String str1 = "abc";, String str2 = "def"; 2개의 String객체가 있을 때, 만
hardlearner.tistory.com