一尘不染

Swift将.uppercaseString仅应用于字符串的第一个字母

swift

我正在尝试制作一个自动更正系统,并且当用户键入一个带有大写字母的单词时,自动更正不起作用。为了解决此问题,我复制了键入的字符串,并应用了.lowercaseString,然后对其进行了比较。如果确实输入了错误的字符串,则应更正单词。但是,替换键入的单词的单词全部为小写。所以我只需要将.uppercaseString应用于第一个字母。我本以为可以用

nameOfString[0]

但这显然行不通。如何将字符串的首字母转换为大写,然后将首字母大写的完整字符串打印出来?

谢谢你的帮助!


阅读 509

收藏
2020-07-07

共1个答案

一尘不染

包括与API准则一致的变异版本和非变异版本。

斯威夫特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()
    }
}

斯威夫特4:

extension String {
    func capitalizingFirstLetter() -> String {
      return prefix(1).uppercased() + self.lowercased().dropFirst()
    }

    mutating func capitalizeFirstLetter() {
      self = self.capitalizingFirstLetter()
    }
}
2020-07-07