如何在String中查找关键字的所有索引

CSn*_*erd 1 scala

例如:

如果String是"provided a provided"和关键字"provided" 那么结果应该是一个数组包含[0, 11]

但是如果关键字是,"provide" 则结果应该是数组包含的[-1]

我试过这样的事情:

val it = "\\bprovided\\b".r.findAllIn("provided a provided");
while (it.hasNext) {
   println(it.next())
}
Run Code Online (Sandbox Code Playgroud)

它只是打印(我需要索引)

provided
provided
Run Code Online (Sandbox Code Playgroud)

这该怎么做?我需要使用哪种方法?

Mar*_*rth 5

scala> val it = "\\bprovided\\b".r.findAllMatchIn("provided a provided")
it: Iterator[Int] = non-empty iterator

scala> if (it.isEmpty) List(-1) else it.map(_.start).toList
res0: List[Int] = List(0, 11)
Run Code Online (Sandbox Code Playgroud)