【问题标题】:Using modulo in Swift strings - how do you capitalise every other letter?在 Swift 字符串中使用模数 - 你如何将每个其他字母大写?
【发布时间】:2015-03-17 19:43:07
【问题描述】:

我希望在 Swift 应用程序中将字符串中的所有其他字母大写。在 javascript 中,我会使用以下内容:

var word = "hello world"

word = word.replace(/[A-z]/g, function(c, i) {
    return i % 2 === 0 ?
      c.toUpperCase() :
      c;
    });

返回:

"HeLlO WoRlD"

你将如何在 Swift 中实现这一点?

提前非常感谢,我已经在网上搜索了答案,但找不到答案,因此将不胜感激。

【问题讨论】:

    标签: string swift replace character modulo


    【解决方案1】:

    如果您希望将两个字母上的一个字母转换为大写,这应该可以解决问题:

    var str = "Hello playground"
    var newStr = ""
    
    for (index, char) in enumerate(str) {
        var s = "\(char)"
        if index%2 == 0 {
            newStr += s.uppercaseString
        } else {
            newStr += s
        }
    }
    
    println(newStr)
    

    演示:http://swiftstub.com/394531161/

    但是,如果您只想在特定范围内查找大写字母,您可能需要查找 replaceRange 方法。

    【讨论】:

    • 是的!非常感谢。我实际上每次都重复运行该循环,并对文本字段进行编辑。如果你这样做,它会连接newStr 变量。所以你可以在使用后快速清除变量以防止这种情况发生。谢谢!
    猜你喜欢
    • 2019-02-28
    • 2013-03-07
    • 1970-01-01
    • 2014-04-05
    • 2011-08-18
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2014-05-19
    相关资源
    最近更新 更多