Skip to content

Instantly share code, notes, and snippets.

@Jesse-calkin
Last active June 3, 2016 03:09
Show Gist options
  • Save Jesse-calkin/43412a36418d93f4860506fb34edd6e0 to your computer and use it in GitHub Desktop.
Save Jesse-calkin/43412a36418d93f4860506fb34edd6e0 to your computer and use it in GitHub Desktop.
Adding truncation to Swift Strings
import Foundation
extension String {
func truncateEnd(length: Int, omissionMarker: String? = "...") -> String {
guard self.characters.count > length else { return self }
return self.substringToIndex(self.startIndex.advancedBy(length)) + (omissionMarker ?? "")
}
func truncateMiddle(length: Int, omissionMarker: String? = "...") -> String {
guard self.characters.count > length else { return self }
let start = self.truncateEnd(length / 2, omissionMarker: nil)
let end = self.truncateBeginning(length / 2, omissionMarker: nil)
return start + (omissionMarker ?? "") + end
}
func truncateBeginning(length: Int, omissionMarker: String? = "...") -> String {
guard self.characters.count > length else { return self }
return (omissionMarker ?? "") + self.substringWithRange(self.endIndex.advancedBy(-length)..<self.endIndex)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment