chunkedSequence
fun CharSequence.chunkedSequence(size: Int): Sequence<String>
Разделяет эту последовательность символов на последовательность строк, каждая из которых не превышает заданного размера size.
Последняя строка в результирующей последовательности может содержать меньше символов, чем заданный размер size.
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val words = "one two three four five six seven eight nine ten".split(' ')
val chunks = words.chunked(3)
println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
//sampleEnd
}Параметры
size - количество элементов, которые нужно взять в каждой строке, должно быть положительным и может быть больше, чем количество элементов в этой последовательности символов.
fun <R> CharSequence.chunkedSequence( size: Int, transform: (CharSequence) -> R ): Sequence<R>
Разделяет эту последовательность символов на несколько последовательностей символов, каждая из которых не превышает заданного размера size, и применяет заданную функцию преобразования transform к каждой из них.
import java.util.Locale
import kotlin.test.*
fun main(args: Array<String>) {
//sampleStart
val codonTable = mapOf("ATT" to "Isoleucine", "CAA" to "Glutamine", "CGC" to "Arginine", "GGC" to "Glycine")
val dnaFragment = "ATTCGCGGCCGCCAACGG"
val proteins = dnaFragment.chunkedSequence(3) { codon: CharSequence -> codonTable[codon.toString()] ?: error("Unknown codon") }
// sequence is evaluated lazily, so that unknown codon is not reached
println(proteins.take(5).toList()) // [Isoleucine, Arginine, Glycine, Arginine, Glutamine]
//sampleEnd
}Параметры
size - количество элементов, которые нужно взять в каждой последовательности символов, должно быть положительным и может быть больше, чем количество элементов в этой последовательности символов.
Возвращаемое значение
последовательность результатов применения функции преобразования transform к каждой из последовательностей символов.
Обратите внимание, что последовательность символов, переданная в функцию преобразования transform, является временной и действительна только внутри этой функции. Вы не должны сохранять её или каким-либо образом допускать её выход за пределы функции, если вы не создали её копию. Последняя последовательность символов может содержать меньше символов, чем заданный размер size.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/chunked-sequence.html