How to capitalize the first character of sentence using Swift

In Swift 2, you can do

String(text.characters.first!).capitalizedString + String(text.characters.dropFirst())

Another possibility in Swift 3:

extension String {
    func capitalizeFirst() -> String {
        let firstIndex = self.index(startIndex, offsetBy: 1)
        return self.substring(to: firstIndex).capitalized + self.substring(from: firstIndex).lowercased()
    }
}

For Swift 4:

Warnings from above Swift 3 code:

 'substring(to:)' is deprecated: Please use String slicing subscript
 with a 'partial range upto' operator.   
'substring(from:)' is deprecated: Please use String slicing subscript with a 'partial range from' operator.  

Swift 4 solution:

extension String {
    var capitalizedFirst: String {
        guard !isEmpty else {
            return self
        }

        let capitalizedFirstLetter  = charAt(i: 0).uppercased()
        let secondIndex             = index(after: startIndex)
        let remainingString         = self[secondIndex..<endIndex]

        let capitalizedString       = "\(capitalizedFirstLetter)\(remainingString)"
        return capitalizedString
    }
}

import Foundation

// A lowercase string
let description = "the quick brown fox jumps over the lazy dog."

// The start index is the first letter
let first = description.startIndex

// The rest of the string goes from the position after the first letter
// to the end.
let rest = advance(first,1)..<description.endIndex

// Glue these two ranges together, with the first uppercased, and you'll
// get the result you want. Note that I'm using description[first...first]
// to get the first letter because I want a String, not a Character, which
// is what you'd get with description[first].
let capitalised = description[first...first].uppercaseString + description[rest]

// Result: "The quick brown fox jumps over the lazy dog."

You may want to make sure there's at least one character in your sentence before you start, as otherwise you'll get a runtime error trying to advance the index beyond the end of the string.