Kotlin joinToString - List 문자열 변환 List to String
Notepad96
·2020. 11. 28. 05:24
1. joinToString - List to String
List를 print를 사용하여 출력하거나하면 toString이 호출되며 [ ... ] 와 같은 형태로 변환된다.
하지만 리스트의 원소들을 모두 연결한 하나의 문자열로 만들고 싶은 경우가 있으며
이럴 때 사용할 수 있는 것이 joinToString 함수이다.
joinToString은
fun <T> Sequence<T>.joinToString(
separator: CharSequence = ", ",
prefix: CharSequence = "",
postfix: CharSequence = "",
limit: Int = -1,
truncated: CharSequence = "...",
transform: ((T) -> CharSequence)? = null
): String
이같은 구조로서
separator : 원소간 연결 시 사이의 들어갈 문자열 ( ""을 주면 공백없이 연결된다.)
prefix : 만들 문자열에서 시작할 문자열
postfix : 만들 문자열에서 종료할 문자열
limit : 개수 제한
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
fun main(args: Array<String>) {
println("=================숫자 리스트=====================")
val ml = listOf(5, 1, 2, 3, 4)
println("List : $ml")
println(ml.joinToString(""))
println(ml.joinToString("|", "<", ">")) // 순서대로 입력하였으므로
println(ml.joinToString( prefix = "<", separator = "|", postfix = ">")) // 임의 순으로 입력하려면 지정해주어야 한다.
println(ml.joinToString("|", "<", ">", 2)) // 2개 이후 ...으로 표현
println("================문자열 리스트=====================")
val str = "ABcdEFgh"
val ml2 = str.toMutableList()
println("List : $ml2")
println("문자열 : ${ml2.joinToString("")} ")
println(ml2.joinToString("-"))
println(ml2.joinToString("->", "start ", " end"))
val li = ml2.map { it + 1 } // 알파벳 한칸 씩 이동
var str2 = li.joinToString("")
println("문자열 알파벳 한칸 씩 이동 : $str2")
// Map의 경우
var mm = mutableMapOf(1 to "sdf", 2 to "qwe")
mm.keys.joinToString("")
}
- 숫자를 같는 문자열을 그냥 출력하였을 경우 [ .. , .. ] 와 같은 형태이다.
이를 separator = "" 을 주어 joinToString을 하여서 공백없이 연결된 51234 문자열을 만들 수 있다.
separator, prefix, postfix, limit 은 순서대로 입력하였을 경우 생략하여도 된다.
하지만 prefix 지정 후 separator, postfix 식으로 임의의 순으로 입력할 때는 각 구분자의 명칭을 적어주어야 한다.
- 문자열 리스트 또한 같은 방법으로 출력할 수도 있다.
변화가 가능한 MutableList이므로 map 함수와 joinToString 함수를 사용함으로써
마치 문자열에서 알파벳을 한 칸씩 이동한 문자열을 구할 수 있다.
- Map과 같은 경우 Keys나 Values 프로퍼티로 리스트로 접근한 후 joinToString을 사용할 수 있다.
3. 참 조
'Kotlin > Collections' 카테고리의 다른 글
Kotlin 스택(Stack) (0) | 2020.11.30 |
---|---|
Kotlin getOrElse - 잘못된 접근으로 발생하는 에러 제거 (0) | 2020.11.28 |
Kotlin zip - List 묶기 (0) | 2020.11.27 |
Kotlin flatMap - 원소 값 변경 및 추가 (0) | 2020.11.27 |
Kotlin partition - 조건에 따라 2개로 분리하기 (0) | 2020.11.26 |