我必须返回列表中包含'?'字符的第一个元素的索引。
为什么它应该为-1时为-1。indexOf不能用于字符吗?我应该使用indexWhere还是会有相同的结果?
scala> val lst = List("question?mark")
lst: List[String] = List(question?mark)
scala> lst.indexOf('?')
res2: Int = -1
当我将val设为字符串时,它可以正常工作
答案 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)