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

标签 ios swift string ios8-extension

我正在尝试制作一个自动更正系统,当用户输入大写字母的单词时,自动更正功能不起作用。为了解决这个问题,我复制了输入的字符串,应用 .lowercaseString,然后比较它们。如果字符串确实打错了,它应该更正这个词。然而,替换键入的单词的单词都是小写的。所以我只需要将 .uppercaseString 应用于第一个字母。本来以为可以用

nameOfString[0]

但这显然行不通。如何让字符串的首字母大写,然后打印首字母大写的完整字符串?

感谢您的帮助!

最佳答案

包括符合 API 指南的变异和非变异版本。

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()
    }
}

关于ios - Swift 仅将 .uppercaseString 应用于字符串的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306326/

相关文章:

objective-c - 内部使用 objective-c 代码的 Swift 2.1 框架(但不重新导出 objective-c

Swift 1.2 重新声明 Objective-C 方法

java - 如何将字符串短语中每个单词的首字母转换为大写?

ruby - 用于选择字符串之前和之后的子字符串的正则表达式

ios - 获取NSManagedObject属性验证正则表达式

objective-c - shouldOptimizeForNetworkUse 实际上做了什么?

ios - 解析错误预期标识符或 '('

iphone - 与每个细胞独特合作的一种观点

iOS 14.5 或 14.6 及以上版本访问共享扩展中的 UIApplication.shared.open 或 UIApplication.shared.openURL 会给出 "APPLICATION_EXTENSION_API_ONLY"

java - 为什么这个java程序中变量不存储值?