ios - 如何大写字符串的每个备用字符?

标签 ios arrays string swift3 swift-playground

可以说有一个字符串“johngoestoschool”,它应该变成“JoHnGoEsToScHoOl”,并且如果它们之间有特殊字符,则应该忽略它,例如给定字符串“jo $%@#hn ^ goe!st#os&choo)l”的。答案应为“Jo $%@#Hn ^ GoE!sT#oS&cHoO)l”

this答案,我们为了迭代我们可以做:

let s = "alpha"
for i in s.characters.indices[s.startIndex..<s.endIndex]
{
    print(s[i])
}

为什么我们不能在此处打印“i”的值?
当我们执行i.customPlaygroundQuickLook时,它将int 0键入为int4。

所以我的想法是
if (i.customPlaygroundQuickLook == 3) {
        s.characters.currentindex = capitalized
}

请帮助

最佳答案

这应该可以解决您的功能,最困难的部分只是检查天气字符是否为字母,使用inout和replace range可以提供更好的性能:

func altCaptalized(string: String) -> String {
    var stringAr = string.characters.map({ String($0) }) // Convert string to characters array and mapped it to become array of single letter strings
    var numOfLetters = 0

    // Convert string to array of unicode scalar character to compare in CharacterSet
    for (i,uni) in string.unicodeScalars.enumerated() {
        //Check if the scalar character is in letter character set
        if CharacterSet.letters.contains(uni) { 
            if numOfLetters % 2 == 0 {
                stringAr[i] = stringAr[i].uppercased() //Replace lowercased letter with uppercased
            }
            numOfLetters += 1
        }
    }

    return stringAr.joined() //Combine all the single letter strings in the array into one string
}

关于ios - 如何大写字符串的每个备用字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42667153/

相关文章:

ios - 第 0 行的 scrollToRowAtIndexPath 滚动到标题而不是行

arrays - 在同心圆中旋转 2D NxN 矩阵

c++ - 为什么这适用于 Visual C++,但不适用于 gcc?

javascript - 根据某些字符和符号将文本字符串转换为数组

java - 如何将字符串数组中的所有项目添加到 Java 中的 vector 中?

android - RTMP 对比 HLS 对比 HDS

ios - 尝试实现我的 Xcode 项目时看到错误(Firebase 问题不 react native )

javascript - 为什么它推送参数名称而不是元素? JavaScript

javascript - 我可以用 JS 数组做到这一点吗?

iphone - 在 GPUImage 中实现一个简单的自适应阈值