有没有一种方法可以替换字符串中的字母?

问题描述

我遇到了一个问题,即它不能将所有G替换为C,而不能将C替换为G,我该怎么办才能解决此问题? 我现在得到的输出是“ GUGAGGGGAG” 我正在寻找的输出是“ CUCAGCGCAG” 这是我到目前为止的代码:

class ViewController: UIViewController,UITextFieldDelegate {
    
    override func viewDidLoad() {
        let textField = UITextField()
        textField.delegate = self
    }
        
    func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool {
        guard let textFieldText = textField.text,let rangeOfTextToReplace = Range(range,in: textFieldText) else {
                return false
        }
        let substringToReplace = textFieldText[rangeOfTextToReplace]
        let count = textFieldText.count - substringToReplace.count + string.count
        return count <= 5
    }
    
}
  • 我正在做DNA到RNA的翻译代码!所以A替换为U,G替换为C,T替换为A,C替换为G

解决方法

使用str.translate,我们可以一次性更改整个字符串:

a_string = "GAGTCGCGTC"
string1 = "GATC"
string2 = "CUAG"
print(a_string.translate(str.maketrans(string1,string2)))

输出:

CUCAGCGCAG
,

在Python 3中,您可以使用translate

a_string = 'GAGTCGCGTCTACACATGCAGTCGAACGGTAGCACAGAGAGCTTGCTCTCGGGTG' 
trans = {
    'G': 'C','A': 'U','T': 'A','C': 'G'
}
print(a_string.translate(str.maketrans(trans)))
# CUCAGCGCAGAUGUGUACGUCAGCUUGCCAUCGUGUCUCUCGAACGAGAGCCCAC
,

您可以执行替换为小写字母,然后仅在完成所有替换后,才将字符串完全变为大写。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...