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