You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 5中如何避免capitalized方法转换时部分文本不必要大写?

解决思路

Swift 内置的 capitalized 方法规则是将每个单词的第一个字母字符大写,其余字母字符小写,所以数字开头的单词会把紧随数字后的第一个字母变成大写,不符合你的需求。我们可以自定义规则拆分字符串处理:

  • 按空格拆分所有单词
  • 对每个单词判断:如果第一个字符是数字,整个单词全部转小写;如果第一个字符是字母,仅首字母大写,其余转小写
  • 最后拼接所有单词

实现代码

func customCapitalized(_ string: String) -> String {
    return string.components(separatedBy: .whitespaces)
        .map { word in
            guard let firstChar = word.first else { return word }
            if firstChar.isNumber {
                return word.lowercased()
            } else {
                return word.prefix(1).uppercased() + word.dropFirst().lowercased()
            }
        }
        .joined(separator: " ")
}

测试效果

调用示例:

var string = "6TH FLOOR BAMBALAPITIYA"
print(customCapitalized(string))

输出结果:

6th Floor Bambalapitiya

该通用实现可以适配所有包含数字开头单词的字符串转换场景。

内容的提问来源于stack exchange,提问作者Thejani Saranaguptha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:48:05