Swift apply .uppercaseString to only the first letter of a string Swift apply .uppercaseString to only the first letter of a string ios ios

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