joinToString 공식문서
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/join-to-string.html
joinToString이란
kotlin에서 리스트나 배열에 있는 값을 문자열로 합치고 싶은 경우에 사용을 한다.
예를 들면 아래와 같은 리스트, 배열이 있는데
val list = listOf(1, 2, 3, 4, 5)
val array = intArrayOf(1, 2, 3, 4, 5)
아래와 같이 리스트 안에 있는 값들을 합쳐서 하나의 문자열로 만들 때 사용을 하는 것이다.
joinToSring 의 내부 구현을 살펴보면,
public fun <T> Iterable<T>.joinToString(separator: CharSequence = ", ",
prefix: CharSequence = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((T) -> CharSequence)? = null
): String {
return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()
}
- separator : 원소 사이에 들어갈 문자열을 설정 (""을 주면 공백없이 연결, 디폴트 : ", " 이라서 쉼표로 연결)
- prefix : 연산결과 문자열의 맨 앞에 붙는 문자열 (디폴트는 "")
- postfix : 연산결과 문자열의 맨 뒤에 붙는 문자열 (디폴트는 "")
- limit : 출력할 요소의 개수를 제한 (디폴트는 -1, 제한이 없다는 의미)
- truncated : limit 개수만큼 요소를 출력 후, 컬렉션의 원소를 모두 표현하지 못할 때 이 값을 표현. ( 디폴트는 "..." )
- transform : 각 요소를 변환하는 함수를 지정
위 요소들에 대한 예시를 들어보면
val list = listOf(1, 2, 3, 4, 5)
아래와 같이 joinToString 을 호출해보면 어떤 결과가 나올까?
print(
list.joinToString(
separator = "",
prefix = "HI",
postfix = "HI",
limit = 3,
)
)
출력
HI123...HI
설명)
공백없이 연결이기 때문에 위 리스트는 문자열 "12345" 로 변경이 된다.
그리고 prefix, postfix가 "HI" 라는 문자열이기 때문에 "HI12345HI" 로 변경이 되고
limit가 3이기 때문에 12345에서 123까지 나오게 된다.
그리고 truncated가 기본값인 "..." 이기 때문에 45 부분은 "..." 로 변경이 되서
최종적으로 "HI123...HI" 로 나오게 된다.
'Kotlin Collection' 카테고리의 다른 글
[Kotlin] sortedWith() (2) | 2024.09.10 |
---|---|
[Kotlin] partition (3) | 2024.09.07 |