Swift apply .uppercaseString to only the first letter of a string
Including mutating and non mutating versions that are consistent with API guidelines.
Swift 3:
extension String { func capitalizingFirstLetter() -> String { let first = String(characters.prefix(1)).capitalized let other = String(characters.dropFirst()) return first + other } mutating func capitalizeFirstLetter() { self = self.capitalizingFirstLetter() }}
Swift 4:
extension String { func capitalizingFirstLetter() -> String { return prefix(1).uppercased() + self.lowercased().dropFirst() } mutating func capitalizeFirstLetter() { self = self.capitalizingFirstLetter() }}
Swift 5.1 or later
extension StringProtocol { var firstUppercased: String { prefix(1).uppercased() + dropFirst() } var firstCapitalized: String { prefix(1).capitalized + dropFirst() }}
Swift 5
extension StringProtocol { var firstUppercased: String { return prefix(1).uppercased() + dropFirst() } var firstCapitalized: String { return prefix(1).capitalized + dropFirst() }}
"Swift".first // "S""Swift".last // "t""hello world!!!".firstUppercased // "Hello world!!!""DŽ".firstCapitalized // "Dž""Dž".firstCapitalized // "Dž""dž".firstCapitalized // "Dž"
Swift 3.0
for "Hello World"
nameOfString.capitalized
or for "HELLO WORLD"
nameOfString.uppercased