VB.Net搜索字符串

时间:2016-06-14 14:13:23

标签: vb.net-2010

我正在寻找一串DNA字符,ATCG。我可能希望寻找AT例如,搜索必须忽略ATAT找不到两个AT。我需要知道字符串中有多少AT,它们在那里的位置。 我尝试了各种各样的想法但到目前为止都失败我用Mid,Contains。如果有人能给我一个提示,我将不胜感激。 此致

1 个答案:

答案 0 :(得分: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;
    }
}

一旦你有一个匹配列表,你可以迭代它并丢弃任何出现的&#34; ATAT&#34;或者你不想要的任何其他模式。

它不优雅 - 它的蛮力 - 但它应该有效。

对C#感到抱歉,但转换为VB.NET应该很容易。