'String iterator in swift
I try to create an iterator for string processing in swift that will return every time the next chracter. But with no luck. (The final goal is to write a parser for a custom scripting language)
All methods that I found on the net involve some for loop on a range, that accesses the characters of the string, one at a time. But I rather need methods like hasNext () and getNextChar (), that other functions would call..
What is the most effective way to write an iterator class like that in swift? Is there maybe some class in swift that implements that feature already, and so, I dont have to write an iterator in the first place?
Solution 1:[1]
Call makeIterator()
on the String
which returns a String.Iterator
. You can call next()
on it to get the next character. It returns nil
when there are no more characters.
let myString = "abcde"
// var iter = myString.characters.makeIterator() // Swift 3
var iter = myString.makeIterator() // Swift 4 and 5
while let c = iter.next() {
print(c)
}
Output:
a b c d e
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |