indexOf: Lists and StringsCall the indexOf method on Lists and Strings to locate elements within collections.
IndexOf. A List contains many elements of different values. And a String contains substrings and characters. We can search for these values and find their positions.
With indexOf, we try to find an element in a List or String. IndexOf returns an Int that tells us where it is. If nothing is found, we get the value -1.
First example. Here we use indexOf on the Scala List type. We have an immutable list of 3 Strings. We try to find elements within the List. The first one, with value "white," is at index 0.
Detail When indexOf fails to locate a match, it returns the value -1. Often we must check for -1 before using the index.
val source = List("white", "grey", "black"); // Use indexOf to search the List. val white = source.indexOf("white") val grey = source.indexOf("grey") // When no element is found, the value -1 is returned. val noIndex = source.indexOf("???") // Print the results. println((white, source(white))) println((grey, source(grey))) println(noIndex)
(0,white) (1,grey) -1
IndexOf, String. We can use the Java indexOf method in Scala. This searches the string's characters. This is a familiar method from Java.
val source = "bird cat frog" // Search for parts of the string. val birdIndex = source.indexOf("bird") val catIndex = source.indexOf("cat") val frogIndex = source.indexOf("frog") // This string is not found, so we get -1. val noIndex = source.indexOf("???") // Print out all the variables. println(source) println(birdIndex) println(catIndex) println(frogIndex) println(noIndex)
bird cat frog 0 5 9 -1
IndexOfSlice. With this method, we try to find a slice within a List. We can specify the argument to indexOfSlice as a List. The entire series of values must be found for a match.
val source = List(10, 20, 30) // Use indexOfSlice to find a List within a List's elements. val test1 = source.indexOfSlice(List(10, 20)) val test2 = source.indexOfSlice(List(10, 900)) val test3 = source.indexOfSlice(List(30, 0)) println(source) println(test1) println(test2) println(test3)
List(10, 20, 30) 0 -1 -1
A summary. For Scala, we have access to both Java methods and Scala-specific methods. The indexOf method on List can take 1 or 2 arguments. IndexOfSlice and indexWhere are also available.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
No updates found for this page.
© 2007-2023 Sam Allen.