我正在尝试创建一个程序,它将接受一个字符串并将其反转并用其免费字符替换它.
例如,如果输入字符串"ATTGCC",则该方法reverse_it应输出"GGCAAT".
"A"由"T"代替,"T"由"A"代替."C"代替"G","G"代替"C".
这是我的代码:
class DNA
def initialize (nucleotide)
@nucleotide = nucleotide
end
def reverse_it()
puts nucleotide.reverse.gsub("C", "G").gsub("G", "C").gsub("A", "T").gsub("T", "A")
end
protected
attr_reader :nucleotide
end
dna1 = DNA.new("ATTGCC")
dna1.reverse_it
Run Code Online (Sandbox Code Playgroud)
问题是gsub替换所有出现的字符,并sub仅替换字符串中第一个字符实例.有没有内置的方法来使这个程序工作?
你可能正在寻找tr,所以在你的方法中,而不是gsub像:
nucleotide.reverse.tr "ATCG", "TAGC"
Run Code Online (Sandbox Code Playgroud)