Challenge
Here's the final challenge; the Standard Library has methods for splitting a string over a single character, or a function that takes a single character and returns a Boolean. However, it doesn't have any methods for splitting a string over a substring, or doing it lazily.
Create a new method, which can be used on lazy strings and substrings, and takes a separator (String) and optionally
String.CompareOptions
and
Locale
, and returns a lazy sequence of the ranges between each occurrence of the separator in the original string/substring.
There are several ways of achieving this. The following hints describe one solution which uses some of the methods we have created in this course. Try and see if you can complete this by using as few hints as possible.
Hints:
We can find the ranges of the separators first, and then invert them to get the ranges of the spaces between the separators.
Use the lazy
allranges
method we created in Lesson 6.Break...