2014-12-03 58 views
1

例如:如何找到一個關鍵字的所有指標中的字符串

如果字符串爲"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 

如何做到這一點?我需要使用哪些方法?

+0

「providede」應返回什麼? – 2014-12-03 20:20:56

+0

@ om-nom-nom應該是一個包含[-1]的數組,必須是精確的關鍵字 – CSnerd 2014-12-03 20:21:50

+0

您必須指定在此字符串中允許使用哪些分隔符。如果input =「provided,provided」,應該返回什麼 – rtruszk 2014-12-03 21:04:57

回答

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) 
+0

在Eclipse IDE中鍵入這些代碼時不起作用。錯誤信息: '這行 \t多個標記 - 價值開局並不 \t字符串 \t的成員 - 值開始不 \t String' – CSnerd 2014-12-03 21:10:06

+0

@CSnerd的成員:你需要使用'.findAllMatchIn ',而不是'.findAllIn'。 – Marth 2014-12-03 21:30:50

+1

@地球是啊!謝謝! – CSnerd 2014-12-03 21:33:41

相關問題