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}}==