gpt4 book ai didi

swift - 带排除规则的反向字符串

转载 作者:行者123 更新时间:2023-12-04 14:01:44 25 4
gpt4 key购买 nike

我尝试反转 sring,在这种情况下我似乎取得了一些成功:

let sampleSentence = "I like to learn Swift"

func reverseWordsInSentence(sentence: String) -> String {
var sentence = sentence
sentence.enumerateSubstrings(in: sentence.startIndex..., options: .byWords) { _, range, _, _ in
sentence.replaceSubrange(range, with: sentence[range].reversed())
}
return sentence
}

但我正在尝试更进一步,确保线条的反转不会影响数字例如:

let sampleSentence = "Test 1, I like to learn Swift 24/7"

现在我有结果:

print(reverseWordsInSentence(sentence: sampleSentence)) // 1tseT, I ekil ot nrael tfiwS 42/7

我的目标是实现结果:

print(reverseWordsInSentence(sentence: sampleSentence)) // tseT1, I ekil ot nrael tfiwS 24/7

我会很高兴收到任何提示!

最佳答案

您可以在闭包内添加一个检查,如果子字符串包含所有数字则返回

guard let string = string, !string.allSatisfy(\.isNumber) else  {
return
}

完整代码

func reverseWordsInSentence(sentence: String) -> String {
var sentence = sentence
sentence.enumerateSubstrings(in: sentence.startIndex..., options: .byWords) { string, range, _, _ in

guard let string = string, !string.allSatisfy(\.isNumber) else {
return
}
sentence.replaceSubrange(range, with: sentence[range].reversed())
}
return sentence
}

关于swift - 带排除规则的反向字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69787802/

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