kotlin中获取选中字符串的长度
Obtain the length of the selected string in kotlin
我想获取字符串中的索引字符或单词
例如
tv.text=" hey how are you, are you okay"
val res=tv.text.indexOf('h')
(有什么办法可以用字符串代替字符吗?
输出分辨率=0
return 的索引只有第一个带有 h 的字符,但在我的电视文本中我有更多的 h 字符
我们可以 return 所有 h 字符索引
以下应该有效(如果在上一次迭代中找到一个索引,则尝试查找索引,然后从先前找到的字符实例加 1 开始下一次迭代,这样就不会再次找到相同的索引,并且再次):
fun main() {
val word = " hey how are you, are you okay"
val character = 'h'
var index: Int = word.indexOf(character)
while (index >= 0) {
println(index)
index = word.indexOf(character, index + 1)
}
}
如果您想存储索引供以后使用,您还可以执行以下操作:
fun main() {
val word = " hey how are you, are you okay"
val character = 'h'
val indexes = mutableListOf<Int>()
var index: Int = word.indexOf(character)
while (index >= 0) {
index = word.indexOf(character, index + 1)
indexes.add(index)
}
println(indexes)
}
您可以使用 filter
函数来获取具有所需字符的所有字符串索引。
val text = " hey how are you, are you okay"
val charToSearch = 'h'
val occurrences = text.indices.filter { text[it] == charToSearch }
println(occurences)
而且,如果您想搜索字符串而不是单个字符,您可以这样做:
text.indices.filter { text.startsWith(stringToSearch, it) }
如果您只想让所有索引都匹配一个字符,您可以这样做:
text.indices.filter { text[it] == 'h' }
查找字符串匹配比较棘手,您可以使用 Kotlin 的 regionMatches 函数来检查从 index 开始的字符串部分是否与您要查找的匹配:
val findMe = "you"
text.indices.filter { i ->
text.regionMatches(i, findMe, 0, findMe.length)
}
您也可以使用正则表达式,只要您小心验证搜索模式即可:
Regex(findMe).findAll(text)
.map { it.range.first() } // getting the first index of each matching range
.toList()
我想获取字符串中的索引字符或单词
例如
tv.text=" hey how are you, are you okay"
val res=tv.text.indexOf('h')
(有什么办法可以用字符串代替字符吗?
输出分辨率=0
return 的索引只有第一个带有 h 的字符,但在我的电视文本中我有更多的 h 字符 我们可以 return 所有 h 字符索引
以下应该有效(如果在上一次迭代中找到一个索引,则尝试查找索引,然后从先前找到的字符实例加 1 开始下一次迭代,这样就不会再次找到相同的索引,并且再次):
fun main() {
val word = " hey how are you, are you okay"
val character = 'h'
var index: Int = word.indexOf(character)
while (index >= 0) {
println(index)
index = word.indexOf(character, index + 1)
}
}
如果您想存储索引供以后使用,您还可以执行以下操作:
fun main() {
val word = " hey how are you, are you okay"
val character = 'h'
val indexes = mutableListOf<Int>()
var index: Int = word.indexOf(character)
while (index >= 0) {
index = word.indexOf(character, index + 1)
indexes.add(index)
}
println(indexes)
}
您可以使用 filter
函数来获取具有所需字符的所有字符串索引。
val text = " hey how are you, are you okay"
val charToSearch = 'h'
val occurrences = text.indices.filter { text[it] == charToSearch }
println(occurences)
而且,如果您想搜索字符串而不是单个字符,您可以这样做:
text.indices.filter { text.startsWith(stringToSearch, it) }
如果您只想让所有索引都匹配一个字符,您可以这样做:
text.indices.filter { text[it] == 'h' }
查找字符串匹配比较棘手,您可以使用 Kotlin 的 regionMatches 函数来检查从 index 开始的字符串部分是否与您要查找的匹配:
val findMe = "you"
text.indices.filter { i ->
text.regionMatches(i, findMe, 0, findMe.length)
}
您也可以使用正则表达式,只要您小心验证搜索模式即可:
Regex(findMe).findAll(text)
.map { it.range.first() } // getting the first index of each matching range
.toList()