Scala中第n个模式匹配的索引

时间:2017-12-20 12:29:35

标签: regex scala

我有一个程序,我试图找到第n个字母“e”的索引。我猜到了这样的事情......

def findE(line: String, ignore: Int) : Int = {
    val pattern = "e".r
    val index = line.indexOf(pattern(ignore+1))
    index
}

,其中

ignore+1 

是所需的组,但语法无效。想知道是否有人知道该怎么做?

1 个答案:

答案 0 :(得分:3)

如果我是你,我会使用标准组合器。

> "abcdeabcdeabcde".zipWithIndex.collect {
    case ('e', index) => index
  }
res1: collection.immutable.IndexedSeq[Int] = Vector(4, 9, 14)

只要取下索引5处的任何内容,如果它存在,那就是你的答案。