Kotlin joinToString - List 문자열 변환 List to String

Notepad96

·

2020. 11. 28. 05:24

300x250

 

 

 

 

 


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과 같은 경우 KeysValues 프로퍼티로 리스트로 접근한 후 joinToString을 사용할 수 있다.

 

 

 

 

 

 


3. 참 조

 

 

joinToString - Kotlin Programming Language

 

kotlinlang.org

 

 

 

300x250