我需要检查我的字符串是否包含一个(或多个)集合中的符号(假设为“。”,“ $”,“!”)。如何在不重复每个符号的情况下进行检查?
答案 0 :(得分:2)
如果string
包含以下任何一个('。','$','!)
val illegalCharacters = setOf('.', '$', '!')
print(string.any(illegalCharacters::contains))
答案 1 :(得分:1)
myString.indexOfAny(charArrayOf('.', '$', '!')) >= 0
答案 2 :(得分:0)
在Kotlin中有一种简单的方法
val stringVal = "Hello, World!"
val containsSymbol = stringVal.findAnyOf(strings = listOf(".", "$", "!"), startIndex = 0, ignoreCase = false) != null
如果愿意,可以将其制成扩展功能
fun String.containsSymbol(symbols: List<String>, startIndex: Int = 0, ignoreCase: Boolean = false): Boolean {
return this.findAnyOf(symbols, 0, false) != null
}
可以像这样"Hello world".containsSymbol(listOf(".", "$", "!"))