scala 获取指定字符串在指定字符串出现第n次的索引
时间: 2023-12-21 09:03:39 浏览: 90
可以使用Scala的String类提供的API实现该功能。以下是一个示例代码:
```scala
def nthIndex(str: String, subStr: String, n: Int): Option[Int] = {
var i = 0
var count = 0
while (i < str.length) {
if (str.startsWith(subStr, i)) {
count += 1
if (count == n) {
return Some(i)
}
}
i += 1
}
None
}
val str = "hello world hello world"
val subStr = "world"
val n = 2
val index = nthIndex(str, subStr, n)
if (index.isDefined) {
println(s"The $n-th index of '$subStr' in '$str' is ${index.get}")
} else {
println(s"'$subStr' does not appear $n times in '$str'")
}
```
解释一下代码:
- `nthIndex`方法接收三个参数,分别为原字符串、子字符串和第几次出现(从1开始计数)。
- 在循环中,使用`startsWith`方法判断当前位置是否以子字符串开头,如果是,就将计数器加一,直到计数器等于指定次数。
- 如果找到了指定次数的出现位置,就返回该位置的索引。
- 如果找不到,就返回`None`。
运行上述代码将输出:
```
The 2-th index of 'world' in 'hello world hello world' is 12
```
阅读全文