2016-06-14 20 views
0

私はDNA文字列ATCGを検索しています。私は例えばATを探したいかもしれません、そして、ATATを無視しなければならない検索は2つのATを見つけません。私はいくつのATがあるか知る必要があります。そこには文字列とその位置があります。 私は様々なアイデアを試しましたが、これまでに失敗しました。私はMid、Containsを使用しました。誰かが私にヒントを与えることができれば、私は感謝します。 よろしくお願いいたします。VB.Net文字列を検索

+1

現在試しているコードとサンプルデータを追加します。エラーメッセージや不正な結果を追加する - あなたのコードはコンパイルされますか? – dbmitch

答えて

0

VB.NETの仲間(C#は私の現在のドープ)ではありませんが、幸いにもそれらは似ています。あなたが実行時間を気にしないなら、あなたは無理やり強制することができます。あなたのパターンは全く文字列で発生した場合、まず、以下を参照してください

bool containsAT myDNAChars.Contains("AT"); 

その後、あなたは自分の位置を見つけることについて行くことができます:あなたはマッチのリストを持っている

var myListOfMatches = new List<int>(); 
int searchIndex = 0; 
string pattern = "AT"; 
bool done = false; 
while(!done) 
{ 
    int atIndex = myDNAChars.IndexOf(pattern, searchIndex); 
    myListOfMatches.Add(atIndex); 
    searchIndex += pattern.Length; 
    if(searchIndex > myDNAChars.Length) 
    { 
     done = true; 
    } 
} 

たら、あなたはそれを反復処理することができますし、 「ATAT」や望ましくないパターンがあればそれを破棄してください。

エレガントではありません - それはブルートフォースですが、うまくいくはずです。

申し訳ありませんがC#については、VB.NETに変換するのは簡単です。