0

次のコードでは、NSString "newDNA" をチェックして、ATCG のみが含まれていることを確認します。次の if ステートメントで、foundRange.location==NSNotFound の場合、文字列内の文字を変更したいと思います。文字が A の場合、T、G を C、C を G、T を A に変更したいと考えています。どうすればよいかわかりません。

//Check characters
    NSCharacterSet *ATCG = [NSCharacterSet characterSetWithCharactersInString:@"ATCG"];
    NSCharacterSet *invalidChars = [ATCG invertedSet];
    //NSString *target; // the string you wish to check
    NSRange searchRange = NSMakeRange(0, newDNA.length); // search the whole string
    NSRange foundRange = [newDNA rangeOfCharacterFromSet:invalidChars
                                                 options:0 // look in docs for other possible values
                                                   range:searchRange];
    if (foundRange.location==NSNotFound) {
        _testLabel.text = @"YESSSS";
    }else{
        _testLabel.text = @"NOOOOOO";
    }
4

1 に答える 1

3

それは非常に簡単です:

    if (foundRange.location==NSNotFound) {
        _testLabel.text = [_testLabel.text stringByReplacingOccurrencesOfString:@"A" withString:@"T"]; 
        //And so on
    }

A を T に、T を A に変更しようとしていることに気付きました。一時的な値を使用することをお勧めします。

たとえば、A を temp に変更し、T を A に変更し、temp を T に変更します。

于 2013-10-14T15:03:54.767 に答える