2014-12-03 2 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

Что должно быть возвращено для «предоставленного»? –

+0

@ om-nom-nom должен быть массивом, содержащим [-1], должно быть точное ключевое слово – CSnerd

+0

Вы должны указать, какие разделители разрешены в этой строке. То, что должно быть возвращено, если input = "предоставлено, при условии, что" – rtruszk

ответ

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

+0

@CSnerd: Вам нужно использовать' .findAllMatchIn ', а не' .findAllIn'. – Marth

+1

@ Март да! Благодаря! – CSnerd

Смежные вопросы