swift - 如何检查字符串是否包含 Swift 5 中的多个字符

标签 swift swift5

我有一个接受字符串的失败初始化器,如果这个字符串包含不正确的字符(T、A、C、G),我想返回 nil:

我试过这样的,不成功:

init?(strand: String) {
    let success = strand.contains(where:  { !"TACG".contains($0) })
    if !success {
        return nil
    }

    self.strand = strand
}

不知何故,我对这两个 contains 调用感到困惑,所以我不确定我的检查是否正确。
任何帮助表示赞赏。

最佳答案

在这种情况下,我更喜欢 API rangeOfCharacter(from,它根据字符集检查字符串

init?(strand: String) {
    guard strand.rangeOfCharacter(from: CharacterSet(charactersIn: "TACG")) == nil else { return nil }
    self.strand = strand
}

关于swift - 如何检查字符串是否包含 Swift 5 中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55677628/

相关文章:

swift - applicationShouldTerminate 在 macOS Swift 应用程序中意外调用

xcode - 为什么编译器告诉 'Expression was too complex'

ios - 打开 URL 前播放声音

ios - 在 SceneKit 中缩放 SCNNode

swift - 从 UIView 中删除特定子层

swift - swift 5 中新的 "count(where:)"语法的问题

ios - 如何将底部和右侧边框添加到自定义 CollectionView

ios - 在 Swift 5 中获取字符串 md5

ios - 如何从 URLSession 获取数组

ios - viewmodifier : puzzled about how the application is different for . shadow() 和 .font 中的 Swift body 方法