【发布时间】:2013-10-22 06:53:42
【问题描述】:
我想要做的是从 NSString 中获取 3 个字母的单词序列,并将它们更改为相应的单词。 EX)AUG =“START”,AGC =“Asparagine”等。我的想法是将 NSString 更改为 NSArray,每个元素包含 3 个字母,然后我可以在 for 循环中引用它们,以创建一个新字符串与结果词。
例子:
NSDictionary *aminoReplaceDict = @{
@"AAA" : @"Lysine",
@"AAC" : @"Asparagine",
@"AAG" : @"Lysine",
@"AAU" : @"Asparagine",
@"ACA" : @"Threonine",
@"ACC" : @"Threonine",
@"ACG" : @"Threonine",
@"ACU" : @"Threonine",
@"AGA" : @"Arginine",
@"AGC" : @"Serine",
@"AGG" : @"Arginine",
@"AGU" : @"Serine",
@"AUA" : @"Isoleucine",
@"AUC" : @"Isoleucine",
@"AUG" : @"START",
@"AUU" : @"Isoleucine",
@"CAA" : @"Glutamine",
@"CAC" : @"Histidine",
@"CAG" : @"Glutamine",
@"CAU" : @"Histidine",
@"CCA" : @"Proline",
@"CCC" : @"Proline",
@"CCG" : @"Proline",
@"CCU" : @"Proline",
@"CGA" : @"Arginine",
@"CGC" : @"Arginine",
@"CGG" : @"Arginine",
@"CGU" : @"Arginine",
@"CUA" : @"Leucine",
@"CUC" : @"Leucine",
@"CUG" : @"Leucine",
@"CUU" : @"Leucine",
@"GAA" : @"Glutamic Acid",
@"GAC" : @"Aspartic Acid",
@"GAG" : @"Glutamic Acid",
@"GAU" : @"Aspartic Acid",
@"GCA" : @"Alanine",
@"GCC" : @"Alanine",
@"GCG" : @"Alanine",
@"GCU" : @"Alanine",
@"GGA" : @"Glycine",
@"GGC" : @"Glycine",
@"GGG" : @"Glycine",
@"GGU" : @"Glycine",
@"GUA" : @"Valine",
@"GUC" : @"Valine",
@"GUG" : @"Valine",
@"GUU" : @"Valine",
@"UAA" : @"STOP",
@"UAC" : @"Tyrosine",
@"UAG" : @"STOP",
@"UAU" : @"Tyrosine",
@"UCA" : @"Serine",
@"UCC" : @"Serine",
@"UCG" : @"Serine",
@"UCU" : @"Serine",
@"UGA" : @"STOP",
@"UGC" : @"Cysteine",
@"UGG" : @"Tryptonphan",
@"UGU" : @"Cysteine",
@"UUA" : @"Leucine",
@"UUC" : @"Phenylalanine",
@"UUG" : @"START",
@"UUU" : @"Phenylalanine",
};
NSMutableString *replaceString = [NSMutableString stringWithString:_trnaOut.text];
for( NSString *replaceWord in [aminoReplaceDict allKeys] )
{
[replaceString replaceOccurrencesOfString:replaceWord withString:aminoReplaceDict[replaceWord] options:NSCaseInsensitiveSearch range:NSMakeRange(0, replaceString.length )];
}
_aminoOut.text = replaceString;
输出:
【问题讨论】:
-
我误解了你的问题吗?例如,您似乎想将“AUC”转换为“Word 1”,但当前接受的答案是相反的并且不处理重叠(例如“AUCAUC”包含“UCA”但不是有效的密码子匹配对于那个字符串)。
-
@CRD 我接受了答案,因为我很容易将其反转并且它有效,但是,我刚刚意识到存在重叠问题,因为我刚刚评论了我接受的答案,并在我的代码中进行了更新.
-
已修复问题并在接受的答案中更新了代码。
-
很高兴知道我没有对视,并且您已经解决了重叠问题(顺便说一句,在当前版本的答案中,您可以将两个循环合二为一)。跨度>
-
@CRD 您介意编辑以反映单个循环吗?
标签: iphone ios objective-c nsstring nsarray