Spec-Zone.ru › Kotlin 2

chunkedSequence

kotlin-stdlib/kotlin.text/chunkedSequence

Начиная с Kotlin: 1.2

fun CharSequence.chunkedSequence(size: Int): Sequence<String>

Разбивает эту последовательность символов на последовательность строк, каждая из которых не превышает заданный размер.

Последняя строка в результирующей последовательности может содержать меньше символов, чем заданный размер.

Параметры

size

количество элементов, которые нужно взять для каждой строки. Должно быть положительным и может превышать количество элементов в этой последовательности символов.

Примеры

import kotlin.test.*

fun main() { 
   //sampleStart 
   val dnaFragment = "ATTCGCCAAXXX"
val knownAcids = setOf("ATT", "CGC", "CAA") // XXX would cause error if processed
val codons = dnaFragment.chunkedSequence(3).onEach { check(it in knownAcids) }
val firstTwo = codons.take(2).toList()

println(firstTwo) // [ATT, CGC] 
   //sampleEnd
}

fun <R> CharSequence.chunkedSequence(size: Int, transform: (CharSequence) -> R): Sequence<R>

Разбивает эту последовательность символов на несколько последовательностей символов, каждая из которых не превышает заданный размер, и применяет к каждой из них заданную функцию преобразования.

Возвращаемое значение

последовательность результатов применения функции преобразования к каждой последовательности символов.

Обратите внимание: последовательность символов, переданная функции преобразования, является временной и действительна только внутри этой функции. Не следует сохранять её или иным образом допускать, чтобы она вышла за пределы функции, если только вы не создали её копию. Последняя последовательность символов может содержать меньше символов, чем заданный размер.

Параметры

size

количество элементов, которые нужно взять для каждой последовательности символов. Должно быть положительным и может превышать количество элементов в этой последовательности символов.

Примеры

import kotlin.test.*

fun main() { 
   //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
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.text/chunked-sequence.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API