Kotlin: строка содержит один из определенных символов - PullRequest
0 голосов
/ 14 ноября 2018

Мне нужно проверить, содержит ли моя строка один (или более) символов из набора (при условии, что ".", "$", "!"). Как проверить это без итерации каждого символа?

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Выведет значение true, если string содержит любое из следующего ('.', '$', '!)

val illegalCharacters = setOf('.', '$', '!')
print(string.any(illegalCharacters::contains))
0 голосов
/ 14 ноября 2018

Существует простой способ сделать это в 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(".", "$", "!"))

0 голосов
/ 14 ноября 2018
myString.indexOfAny(charArrayOf('.', '$', '!')) >= 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...