【发布时间】:2020-09-23 03:10:39
【问题描述】:
我想实现一个函数,它将返回指定字符串中子字符串的索引。现在我是用 Java 风格做的:
public fun String?.indexesOf(substr: String, ignoreCase: Boolean = true): List<Int> {
var list = mutableListOf<Int>()
if (substr.isNullOrBlank()) return list
var count = 0;
this?.split(substr, ignoreCase = ignoreCase)?.forEach {
count += it.length
list.add(count)
count += substr.length
}
list.remove(list.get(list.size-1))
return list
}
但我不认为这是一个 kotlin 方式的解决方案。它最像典型的 java 程序,但用 kotlin 编写。如何使用 kotlin 更优雅地实现这一点?
【问题讨论】:
-
至少你可以用
list.dropLast(1)代替list.remove(list.get(list.size-1)) -
只要记住可读性 > 简洁性
标签: kotlin