[Kotlin] 코틀린 문자열 자르기(split, chunked)

코틀린 문자열 자르기

delimiter를 기준으로 문자열 자르기(split)

split함수를 이용하면 delimiter를 기준으로 문자열을 자를 수 있다.

예를들어 delimiter가 쉼표라면 문자열을 쉼표를 기준으로 자른다.

split의 리턴값은 List다.

문자열.split(vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0): List<String>

위 인수 중 ignoreCase, limit는 생략 가능하며 생략시 기본값이 사용된다. 일반적인 경우는 delimiters만 지정하면 된다. ignoreCase, limit는 사용해본적이 없어서 아래 코드 주석으로 설명을 대체한다.

/**
* Splits this char sequence to a list of strings around occurrences of the specified [delimiters].
*
* @param delimiters One or more characters to be used as delimiters.
* @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.
* @param limit The maximum number of substrings to return.
*/
fun main() {
    var input = "brave new world"
    println(input) // brave new world
    var token = input.split(' '); // delimiter는 공백
    println(token) // brave, new, world
    println(token[0]) // brave
    println(token[1]) // new
    println(token[2]) // world
}

개수를 기준으로 문자열 자르기(chunked)

개수를 기준으로 문자열을 자르는 방법은 chunked함수를 이용한다.

chunked의 리턴값도 마찬가지로 List다.

문자열.chunked(size: Int): List<String>

size에 자를 개수를 입력한다.

fun main() {
    var input = "brave new world"
    println(input) // brave new world
    var token = input.chunked(2);
    println(token) // brave, new, world
    println(token[0]) // br
    println(token[1]) // av
    println(token[2]) // e
    println(token[3]) // ne
    println(token[4]) // w
    println(token[5]) // wo
    println(token[6]) // rl
    println(token[7]) // d
}

Leave a Comment