在kotlin中过滤一个子字符串
在kotlin
我想过滤一个字符串,并返回一个只有有效字符的子字符串。 说我们有有效的人物,
valid = listOf('A', 'B', 'C')
如何在kotlin中以最简洁的方式定义一个fcn
来过滤一个字符串,只保留有效的字符? 例如,
'ABCDEBCA' --> 'ABCBCA' 'AEDC' --> 'AC'
无法find一个规范的方式来做到这一点,而不诉诸使用一个字符串数组。
import kotlin.text.filter class Test(){ val VALID = listOf("A", "B", "C") fun filterString(expression: String): String{ expression.filter(x --> !VALID.contains(x)) #Doesn't work } }
筛选器文档没有显示任何特别针对弹簧操作的示例。
val VALID = setOf('A', 'B', 'C') // lookup in a set is O(1), whereas it's O(n) in a list. The set must contain Chars, not Strings val expression = "ABCDEFEDCBA" val filtered = expression.filter { VALID.contains(it) } println(filtered) // ABCCBA
要么
val VALID = setOf('A', 'B', 'C') fun filterString(expression: String) = expression.filter { it in VALID } fun main(args: Array) { val expression = "ABCDEFEDCBA" val filtered = filterString(expression) println(filtered) // ABCCBA }