比较字符串的一部分。 C#

时间:2014-11-28 15:22:47

标签: c# arrays string for-loop compare

我想比较并检查字符串是否是另一个字符串的一部分。例如: String1 =“ACGTAAG” String2 =“TAA”

我想检查String1是否包含String2。我使用此代码,但它不起作用。

public bool ContainsSequence(string input, string toBeChecked)
    {
        for (int i = 0; i < input.Length; i++)
        {
            Char x = input[i];
            String y = Convert.ToString(x);

            for (int j = 0; j < toBeChecked.Length; j++)
            {
                Char a = toBeChecked[j];
                String b = Convert.ToString(a);
                if (b.Equals(y))
                {
                    j = toBeChecked.Length;
                    return true;
                }
            }

        }

        return false;
    }

input = string1和tobechecked = string 2。 我是c#的新手,所以有些术语可能会令人困惑。

4 个答案:

答案 0 :(得分:1)

尝试使用String.Contains()

在这里查看:

http://msdn.microsoft.com/en-us/library/dy85x1sa%28v=vs.110%29.aspx

祝你好运。

答案 1 :(得分:0)

使用

If(mainString.Contains(searchedString)
{
   //do stuff
}

答案 2 :(得分:0)

在我看来,你正在使用它来比较DNA序列:)。

也许string.IndexOf(字符串值)或其中一个重载更适合你,因为它可以帮助你 您搜索相同字符串的更多出现(诸如“它包含字符串的次数”之类的内容):http://msdn.microsoft.com/en-us/library/k8b1470s(v=vs.110).aspx

如果你想要的只是查看字符串是否包含,我也会选择其他人提供的版本。

答案 3 :(得分:0)

对于核苷酸序列,您可能需要一些sequence alignment algorithm,当序列不相等时,它们具有一定的耐受性。例如Smith–Waterman algorithm