Фильтровать подстроку в котлин

В kotlin я хотел бы отфильтровать строку и вернуть подстроку только допустимых символов. Скажем, у нас есть действующие символы,

 valid = listOf('A', 'B', 'C') 

Как определить fcn в kotlin самым сжатым способом фильтрации строки и сохранить только допустимые символы? Например,

 'ABCDEBCA' --> 'ABCBCA' 'AEDC' --> 'AC' 

Не удалось найти канонический способ сделать это, не прибегая к использованию массива строк.

 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<String>) { val expression = "ABCDEFEDCBA" val filtered = filterString(expression) println(filtered) // ABCCBA }