kotlin - 在Kotlin中重复字符串n次

标签 kotlin

我想创建一个string,其中将包含一个*符号n时间。
我只看到这种方式:

val s = ""
val n = 100
for (j in 0 until n) {
    s += "*"
}

但是它看起来很丑,并且具有O(n ^ 2)的时间复杂度。 Kotlin中有没有一种方法可以在没有循环的情况下实现更好的时间复杂性?

最佳答案

内置的 CharSequence.repeat 扩展可以高效地完成此操作,请参见here源。

val str: String = "*".repeat(100)

当然,这仍然需要O(n)个步骤来创建字符串。但是,使用此内置的stdlib函数具有其优点:它是跨平台的,易于阅读,并且如果有更有效的解决方案,则可以随着时间的推移提高性能。无论如何,编译器或运行时都可能会优化其中的循环。

关于kotlin - 在Kotlin中重复字符串n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48446286/

相关文章:

gradle - 如何获取KotlinJS项目依赖项的相应生成的javascript文件?

generics - 在一种情况下将 Kotlin 泛型限制为不为 null

java - 在 Kotlin 中,为什么我的每个 Float 占用 128 位而不是 16 位?

java - 如何在android studio中修复(资源@drawable/abc_vector_test在androix.appcompat :appcompat)中标记为私有(private)

Android Studio 在有效的 Kotlin 代码中显示错误

kotlin - 有没有办法通过委托(delegate)实现 `Comparable<T>` ?

android - 我如何使用 Kodein 进行注入(inject)?

kotlin - LinkedHashMap 在 Kotlin 中创建什么?

android - 为什么 notifyDataSetChanged 会炸毁 ViewPager2 中的 PagerTransformer?

gradle - 未能使用Gradle构建Kotlin项目