Kotlin:字符串包含特定符号之一

时间:2018-11-14 09:55:27

标签: kotlin

我需要检查我的字符串是否包含一个(或多个)集合中的符号(假设为“。”,“ $”,“!”)。如何在不重复每个符号的情况下进行检查?

3 个答案:

答案 0 :(得分:2)

如果string包含以下任何一个('。','$','!)

,将打印true。
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(".", "$", "!"))

调用