如何使用Kotlin将字符串分割为每个包含N个字符的子块?
方案1:使用Kotlin标准库内置chunked()方法(推荐)
Kotlin的CharSequence接口已经原生提供了按固定长度分割的方法chunked(),直接调用即可,不需要额外实现逻辑:
fun splitIntoN(str: String, n: Int): List<String> { require(n > 0) { "分割长度n必须大于0" } return str.chunked(n) } // 测试验证 fun main() { val str = "Hello World! Kotlin is amazing!" println(splitIntoN(str, 3)) // 输出:[Hel, lo , Wor, ld!, Ko, tli, n i, s a, maz, ing, !],与示例预期完全一致 }
方案2:正则实现
如果你需要用正则方式实现,可以用{1,n}匹配规则实现最多n个任意字符的匹配,即可得到目标结果:
fun splitIntoNByRegex(str: String, n: Int): List<String> { require(n > 0) { "分割长度n必须大于0" } return Regex(".{1,$n}").findAll(str).map { it.value }.toList() }
内容的提问来源于stack exchange,提问作者Ilya
相关产品推荐
相关产品推荐

