2014-11-12 2 views
-1

'?'문자가 포함 된 목록에서 첫 번째 요소의 색인을 반환해야합니다.목록이 작동하지 않는 indexOf ('?')

왜 -1이되어야 할 때 -1로 올까요? indexOf가 문자에서 작동하지 않습니까? indexWhere를 사용해야합니까, 아니면 같은 결과가 나올까요? 나는 발 lst.indexWhere(_.contains("?"))

indexOf을 시도 올바르게

답변

4

작동하는 문자열을 만들 때

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

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

"이 목록에있는 일부 값이 처음 나타나는 인덱스를 찾습니다." link

따라서 "?"와 같은 문자열을 찾습니다. 목록에. 문자열

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

+1

을 사용할 수 있습니다리스트의 각 요소에 대한

lst(0).indexOf('?') 

시도 물음표는 -1로 표시하지만 int = 0을 계속 말합니다 – acolisto

+0

"t의 색인 그는'?' "_is_ 0.를 포함하는 목록의 첫 번째 요소를 실제로 포함하고 있습니다. 실제로 목록에는 하나의 요소 만 들어 있습니다. –

+0

@acolist, 목록 항목에 "?"이 포함되지 않은 테스트 케이스를 제공 할 수 있습니까? 결과는 0입니까? – red1ynx

1

.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) 
+0

이 경우 첫 번째가 아니라 '?'가 포함 된 모든 요소를 ​​찾을 수 있습니다. – red1ynx