2013-07-26 69 views

回答

50
scala> List("Mary", "had", "a", "little", "lamb").indexOf("little") 
res0: Int = 3 

你可以嘗試讀取scaladoc for List下一次的索引。 ;)

+1

'.indexOf'也適用於Array –

28

如果你想包含 「A」,那麼所有的索引列表:

val ls = List("Mary", "had", "a", "little", "lamb","a") 
scala> ls.zipWithIndex.filter(_._1 == "a").map(_._2) 
res13: List[Int] = List(2, 5) 
+16

有趣!我認爲這是_collect_是爲了什麼:'ls.zipWithIndex.collect {case(「a」,i)=> i}' – DaoWen

25

如果你想通過謂詞來搜索,使用.indexWhere(f)

val ls = List("Mary", "had", "a", "little", "lamb","a") 
ls.indexWhere(_.size <= 3) 

這將返回1,因爲「有」是最多3個字母的第一個單詞。