Last active
September 27, 2017 16:22
-
-
Save aorcsik/c8210a84f163b1b644c0 to your computer and use it in GitHub Desktop.
A little truncate function extension for the default String type
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension String { | |
/// Truncates the string to length number of characters and | |
/// appends optional trailing string if longer | |
func truncate(length: Int, trailing: String? = nil) -> String { | |
if countElements(self) > length { | |
return self.substringToIndex(advance(self.startIndex, length)) + (trailing ?? "") | |
} else { | |
return self | |
} | |
} | |
} | |
// Example | |
let str = "This is a long string".truncate(10, trailing: "...") // "This is a ..." |
Thanks! I created a fork with this function updated for Swift 2.0: https://gist.github.com/jesskturner/8def9c0cf756b3bbde79
Swift 4 version: https://gist.github.com/budidino/8585eecd55fd4284afaaef762450f98e
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for sharing. How you would go about shortening a string without cutting any word off.
say i had the string text = "this is a long string i cant display" i want to trim it down to 10 characters but if it doesnt end with a space finish the word i don't want the string variable to look like this "this is a long string i cant dis" i want it to finish the word until a space occurs.