c#中的字符串查找函数
c#中有没有一个字符串查找函数,可以查找出一个字符串中是否包含另一个字符串,若查找成功则返回true,否则返回false。...
c#中有没有一个字符串查找函数,可以查找出一个字符串中是否包含另一个字符串,若查找成功则返回true,否则返回false。
展开
6个回答
展开全部
indexOf()方法,查找某字符串在一个字符串内的位置,没有则返回-1
string aa="abcdef";
int a=aa.indexOf("bc");//a会等于1
int b=aa.indexOf("a");//b会等于0
int c=aa.indexOf("g");c会等于-1
所以你只要判断返回出来的int值是不是小于0就知道这个字符串里有没有包含指定的另一个字符串
string aa="abcdef";
int a=aa.indexOf("bc");//a会等于1
int b=aa.indexOf("a");//b会等于0
int c=aa.indexOf("g");c会等于-1
所以你只要判断返回出来的int值是不是小于0就知道这个字符串里有没有包含指定的另一个字符串
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bool contain=longstr.Contains("aaa");
但是这个方法是System.Linq中的
所以VS2005以及以下版本是不支持的
但是这个方法是System.Linq中的
所以VS2005以及以下版本是不支持的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有就是indexOf()方法,查找子串在一个字符串内的起始位置,它有九个重载,你自己研究研究
也可以自己写的,下面是我自己改写了一个,是用那个著名的kmp算法查找的(这个方法查找的效率是最高的),关于这个算法你可以 百度一下,我就不多说了(学习学习总是好的,呵呵 )
下面的代码粘到窗体里就能用了....
int[] next = new int[20];//全局变量
private void get_next(string p)
{
int i = 1, j = 0; next[1] = 0;
while (i < p.Length)
{
if (j == 0 || p.Substring(i - 1, 1) == p.Substring(j - 1, 1))
{
++i; ++j;
if (p.Substring(i - 1, 1) != p.Substring(j - 1, 1))
next[i] = j;
else next[i] = next[j];
}
else j = next[j];
}
}
private bool b_kmp(string s, string p)//s是主串p是要查找的子串
{
get_next(p);
int i = 1, j = 1;
while (i <= s.Length && j <=p.Length)
{
if (j == 0 || s.Substring(i - 1, 1) == p.Substring(j - 1, 1)) { ++i; ++j; }
else j = next[j];
}
if (j > p.Length) return true;
else return false;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(b_kmp (textBox1.Text,textBox2.Text).ToString());
}
也可以自己写的,下面是我自己改写了一个,是用那个著名的kmp算法查找的(这个方法查找的效率是最高的),关于这个算法你可以 百度一下,我就不多说了(学习学习总是好的,呵呵 )
下面的代码粘到窗体里就能用了....
int[] next = new int[20];//全局变量
private void get_next(string p)
{
int i = 1, j = 0; next[1] = 0;
while (i < p.Length)
{
if (j == 0 || p.Substring(i - 1, 1) == p.Substring(j - 1, 1))
{
++i; ++j;
if (p.Substring(i - 1, 1) != p.Substring(j - 1, 1))
next[i] = j;
else next[i] = next[j];
}
else j = next[j];
}
}
private bool b_kmp(string s, string p)//s是主串p是要查找的子串
{
get_next(p);
int i = 1, j = 1;
while (i <= s.Length && j <=p.Length)
{
if (j == 0 || s.Substring(i - 1, 1) == p.Substring(j - 1, 1)) { ++i; ++j; }
else j = next[j];
}
if (j > p.Length) return true;
else return false;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(b_kmp (textBox1.Text,textBox2.Text).ToString());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public bool IsInclude(string reStr, string seStr){
return reStr.indexOf(seStr) >= 0 ;
}
return reStr.indexOf(seStr) >= 0 ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询