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

时间:2014-12-03 20:19:34

标签: scala

例如:

如果字符串为"provided a provided"且关键字为"provided" 那么结果应该是一个包含[0, 11]

的数组

但如果关键字为"provide" 那么结果应该是一个包含[-1]

的数组

我试过这样的事情:

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

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

provided
provided

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

1 个答案:

答案 0 :(得分: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)