Anonymous user
Tokenize a string with escaping: Difference between revisions
Add Swift
(→{{header|TMG}}: new section) |
(Add Swift) |
||
Line 2,136:
""
</pre>
=={{header|Swift}}==
{{trans|Rust}}
<lang swift>extension String {
func tokenize(separator: Character, escape: Character) -> [String] {
var token = ""
var tokens = [String]()
var chars = makeIterator()
while let char = chars.next() {
switch char {
case separator:
tokens.append(token)
token = ""
case escape:
if let next = chars.next() {
token.append(next)
}
case _:
token.append(char)
}
}
tokens.append(token)
return tokens
}
}
print("one^|uno||three^^^^|four^^^|^cuatro|".tokenize(separator: "|", escape: "^"))</lang>
{{out}}
<pre>["one|uno", "", "three^^", "four^|cuatro", ""]</pre>
=={{header|Tcl}}==
|