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
참고 사이트2 : https://hardlearner.tistory.com/288
'Kotlin' 카테고리의 다른 글
확장함수? 써보기 (0) | 2024.07.30 |
---|---|
switch문과 if else문, 둘 중 어떤 것이 더 좋은가? (2) | 2024.06.14 |
Kotlin 문법 : 상속과 추상화 (0) | 2024.06.12 |
문제해결 : unresolved reference: add (0) | 2024.06.07 |
Kotlin 문법 : sort와 sorted (with. 프로그래머스) (0) | 2024.06.05 |