如何防止 Swift 5 中的某些文本大写?

How to prevent capitalizing some of the texts in Swift 5?

下面是我需要大写的示例代码。我是用“大写”的方法实现的。

var string = "6TH FLOOR BAMBALAPITIYA"
print(string.capitalized)

结果是,

6Th Floor Bambalapitiya

但是我不想让“6Th Floor”中的字母T大写。请帮我写一个常用的函数来实现,

6th Floor Bambalapitiya

提前致谢

尝试这样的事情:

func addressCapitalised(_ str: String) -> String {
    var result = str
    let temp1 = str.split(separator: " ")
    if let firstStr = temp1.first  {
        let temp2 = String(firstStr).lowercased()
        let temp3 = temp1.dropFirst().joined(separator: " ").capitalized
        result = (temp2 + " " + temp3).trimmingCharacters(in: .whitespacesAndNewlines)
    }
    return result
}

let myString = "6TH FLOOR BAMBALAPITIYA"
let dasCapital = addressCapitalised(myString)
print("\n----> dasCapital: \(dasCapital) ")
var string = "6TH FLOOR BAMBALAPITIYA"
print(string.lowercased().split(separator: " ").map { [=10=].prefix(1).uppercased() + [=10=].dropFirst() }.joined(separator: " "))
// 6th Floor Bambalapitiya

为了更容易理解,我将分解这些步骤。

  1. 小写整个字符串。
  2. 使用 " " 作为分隔符将字符串拆分为一个数组。
  3. 使用map遍历数组的每个元素。
  4. 大写每个元素的第一个字符并组合元素的其余部分,删除第一个字符(因为我们已经有了前缀)。
  5. 使用 " ".
  6. 将数组重新组合成一个字符串