list
를 println()
으로 출력하면 자동으로 toString()
메서드를 사용하여 출력하며, [ ... ]
형태로 출력이 된다.
먼저 joinToString
의 코드를 확인해보자.
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
개수만큼 요소를 출력 후, 컬렉션의 원소를 모두 표현하지 못할 때 이 값을 표현. ( 기본 값은 "..." )
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(separator = "|", prefix = "<", postfix = ">", limit = 2)) // 2개 이후 ...으로 표현
println("================문자열 리스트=====================")
val str = "ABcdEFgh"
val ml2 = str.toMutableList()
println("List : $ml2")
println("문자열 : ${ml2.joinToString(separator = "")} ") // ABcdEFgh
println(ml2.joinToString("-")) // A-B-c-d-E-F-g-h
println(ml2.joinToString("->", "start ", " end")) // start A->B->c->d->E->F->g->h end
val li = ml2.map { it + 1 } // 알파벳 한칸 씩 이동
var str2 = li.joinToString("")
println("문자열 알파벳 한칸 씩 이동 : $str2")
// Map의 경우 - key와 value 기준으로 joinToString을 사용할 수 있음.
var mm = mutableMapOf(1 to "sdf", 2 to "qwe")
println(mm.keys.joinToString("")) // 12
println(mm.values.joinToString("")) // sdfqwe
}
=================숫자 리스트=====================
List : [5, 1, 2, 3, 4]
51234
<5|1|2|3|4>
<5|1|2|3|4>
<5|1|...>
================문자열 리스트=====================
List : [A, B, c, d, E, F, g, h]
문자열 : ABcdEFgh
A-B-c-d-E-F-g-h
start A->B->c->d->E->F->g->h end
문자열 알파벳 한칸 씩 이동 : BCdeFGhi
12
sdfqwe
Map
의 경우, Key
와 Value
를 기준으로 joinToString()
을 사용할 수 있다.