indexOf('?')表示列表不起作用

时间:2014-11-12 05:02:09

标签: list scala collections scala-collections indexof

我必须返回列表中包含'?'字符的第一个元素的索引。

为什么它应该为-1时为-1。indexOf不能用于字符吗?我应该使用indexWhere还是会有相同的结果?

scala> val lst = List("question?mark")
lst: List[String] = List(question?mark)

scala> lst.indexOf('?')
res2: Int = -1

当我将val设为字符串时,它可以正常工作

2 个答案:

答案 0 :(得分:4)

尝试lst.indexWhere(_.contains("?"))

indexOf"查找此列表中某个值首次出现的索引。" link

因此,它找到的字符串等于"?"在列表中。

答案 1 :(得分:1)

.indexOf适用于String

scala> "where is ?".indexOf('?')
res5: Int = 9

所以试试

lst(0).indexOf('?')

对于您可以使用的每个列表元素

scala> val lst = List("question?mark","where?","hello","why?")
lst: List[String] = List(question?mark, where?, hello, why?)

scala> lst.map(_.indexOf('?'))
res4: List[Int] = List(8, 5, -1, 3)