gpt4 book ai didi

swift - 向后遍历字符串字符的好方法是什么?

转载 作者:IT王子 更新时间:2023-10-29 05:28:43 30 4
gpt4 key购买 nike

通过字符串中的字符向后迭代的最 Swiftian 方法是什么?即像 for ch in str,只是反过来?

我想我一定遗漏了一些明显的东西,因为我刚才能想到的最好的是:

    for var index = str.endIndex; 
index != str.startIndex;
index = index.predecessor() {
let ch = str[index.predecessor()]
...
}

我意识到“什么是最好的……”可能被归类为主观;我想我真正想要的是一种简洁易读的方法。

编辑:虽然 reverse() 有效且简洁,但与上面的方法相比,这看起来可能效率很低,即它似乎实际上并没有向后迭代,而是创建了字符串中字符的完整反向副本。如果您要查找的内容通常是 10,000 个字符的字符串末尾的几个字符,那么这将比我原来的要糟糕得多。因此,我将这个问题暂时悬而未决,以吸引其他方法。

最佳答案

reversed 函数反转一个 C:CollectionType 并返回一个 ReversedCollection:

for char in "string".characters.reversed() {
// ...
}

如果您发现 reversed 预先反转字符串,请尝试:

for char in "string".characters.lazy.reversed() {
// ...
}

lazy 返回延迟计算序列 (LazyBidirectionalCollection) 然后 reversed() 返回另一个被访问的 LazyBidirectionalCollection反过来。

关于swift - 向后遍历字符串字符的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25227359/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com