如何检查字符串是否包含单次出现的子字符串

本文关键字:字符串 包含单 是否 检查 何检查 | 更新日期: 2023-09-27 17:58:26

我有这个:

string strings = "a b c d d e";

我需要类似于string.Contains()的东西,但我不仅需要知道是否存在字符串(在字母上方的情况下),还需要它是否只存在一次

我怎样才能做到这一点?

如何检查字符串是否包含单次出现的子字符串

您可以使用LastIndexOf(String)IndexOf(String)并验证返回的值是否相等。当然,还要检查是否找到了String(即返回的值不是-1)。

您可以使用LINQ

int count = strings.Count(f => f == 'd');

替代

if(Regex.Matches(input,Regex.Escape(pattern)).Count==1)

另一个简单的替代方案:

if(strings.Split(new [] { "a" }, StringSplitOptions.None).Length == 2)

尝试如下。。。它将帮助你。。。

string strings = "a b c d d e";
string text ="a";
int count = 0;
int i = 0;
while ((i = strings.IndexOf(text, i)) != -1)
{
    i += text.Length;
    count++;
}
if(count == 0)
Console.WriteLine("String not Present");
if(count == 1)
Console.WriteLine("String Occured Only one time");
if(Count>1)
Console.WriteLine("String Occurance : " + count.Tostring());
    string source = "a b c d d e";
    string search = "d";
    int i = source.IndexOf(search, 0);
    int j = source.IndexOf(search, i + search.Length);
    if (i == -1)
        Console.WriteLine("No match");
    else if (j == -1)
        Console.WriteLine("One match");   
    else
        Console.WriteLine("More match");

您可以检查数组myString.Split('a')的长度(减1),假设您正在搜索出现的"a"