在学习String的相关方法的时候,接触到了IndexOf方法(当然还有LastIndexOf)。
它可以很方便地帮我们定位,当然它的作用还不止如此。
比如,有时候我们需要判断一个字符或者子串是否重复,用IndexOf,不用统计,也能知道是否重复。
拿@为例,如果在一个textBox中,要判断是否重复可用如下作法:
int b = textBox1.Text.IndexOf('@');
if (b >= 0 && b != textBox1.TextLength - 1)
{
if (textBox1.Text.IndexOf('@', b + 1) > 0)
{
MessageBox.Show("@重复出现!");
}
}
另外,更进一步,顺着上面的思路,似乎我们还可以用它来计数。
当第一个@的位置不在该字符串的最后一位时,则继续向后检索。
int k = 0,s;
int c = textBox3.Text.IndexOf('@');
if (c >= 0)
{
k = 1;
if(c != textBox3.TextLength - 1)
{
for (s = c + 1; s <= textBox3.TextLength - 1;s++ )
{
if (textBox3.Text.IndexOf('@',s) > 0)
{
k++;
}
}
}
}
首先,找到第一个目标字符,然后再规定往后的每次检索,都从目标字符后一个开始,看看后面还有没有@。
利用for循环来实现,最终K的值就代表了该字符串中有多少个@。