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

在Swift中如何将字符串中的元音字母转换为大写?

原有代码的问题
  • 参数名不匹配:函数定义时形参外部名默认和内部名一致为sentence,调用时错误使用了word作为参数标签
  • 遍历逻辑错误:没有遍历待处理的输入字符串字符,反而遍历了元音字母集合,无法实现逐个字符判断转换的需求
  • 语法错误:sentence(i.uppercased())不符合Swift的字符串操作语法,无法通过编译
  • 赋值逻辑错误:即使修复语法问题,直接对result全量赋值会覆盖之前的修改,只能保留最后一次替换的结果
正确实现代码
func makeVowelsUpperCase(sentence: String) -> String {
    let vowels: Set<Character> = ["a", "e", "i", "o", "u"]
    var result = ""
    for char in sentence {
        if vowels.contains(char) {
            result.append(char.uppercased())
        } else {
            result.append(char)
        }
    }
    return result
}

也可以用高阶函数简化写法:

func makeVowelsUpperCase(sentence: String) -> String {
    let vowels: Set<Character> = ["a", "e", "i", "o", "u"]
    return sentence.map { vowels.contains($0) ? $0.uppercased() : String($0) }.joined()
}
调用测试
// 调用时参数标签要和定义一致用sentence
let output = makeVowelsUpperCase(sentence: "this is my house")
print(output) // 输出结果:thIs Is my hOUsE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:15:08