Skip to content

Commit 67a83ce

Browse files
committed
Add extensions to String
1 parent 2c3c58f commit 67a83ce

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Tool/Sources/SuggestionProvider/String+Extension.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,26 @@ public extension String {
88
}
99
return String(text)
1010
}
11+
12+
func removedTrailingCharacters(in set: CharacterSet) -> String {
13+
var text = self[...]
14+
while let last = text.last, set.containsUnicodeScalars(of: last) {
15+
text = text.dropLast(1)
16+
}
17+
return String(text)
18+
}
19+
20+
func removeLeadingCharacters(in set: CharacterSet) -> String {
21+
var text = self[...]
22+
while let first = text.first, set.containsUnicodeScalars(of: first) {
23+
text = text.dropFirst()
24+
}
25+
return String(text)
26+
}
27+
}
28+
29+
extension CharacterSet {
30+
func containsUnicodeScalars(of character: Character) -> Bool {
31+
return character.unicodeScalars.allSatisfy(contains(_:))
32+
}
1133
}

0 commit comments

Comments
 (0)