我遇到了一个问题,即它不能将所有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
}
}
答案 0 :(得分:5)
使用str.translate
,我们可以一次性更改整个字符串:
a_string = "GAGTCGCGTC"
string1 = "GATC"
string2 = "CUAG"
print(a_string.translate(str.maketrans(string1, string2)))
输出:
CUCAGCGCAG
答案 1 :(得分:2)
在Python 3中,您可以使用translate
:
a_string = 'GAGTCGCGTCTACACATGCAGTCGAACGGTAGCACAGAGAGCTTGCTCTCGGGTG'
trans = {
'G': 'C',
'A': 'U',
'T': 'A',
'C': 'G'
}
print(a_string.translate(str.maketrans(trans)))
# CUCAGCGCAGAUGUGUACGUCAGCUUGCCAUCGUGUCUCUCGAACGAGAGCCCAC
答案 2 :(得分:1)
您可以执行替换为小写字母,然后仅在完成所有替换后,才将字符串完全变为大写。