2013-07-26 72 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个字母的第一个单词。