如何检查字符串中重复出现的字符#

How to check reoccurring characters in string c#

我正在开发电子邮件验证并想检查电子邮件中是否有超过 1 个 @ 符号,我该如何继续实施?

static string Check(string email)
    {
        
        if (email.Contains("@") && email.Contains("."))
        {
          // check for 2 @ symbols or more will be here

            
         return email;
        }

        return string.Empty;
    }

一般来说,您不应该重新发明轮子,尤其是对于像电子邮件验证这样的复杂主题。使用 available regexMailAddress 构造函数。

但是,为了回答您的问题,如果您确实需要类似的东西(用于其他任务),您可以实现这样的扩展方法:

public static IList<int> AllIndexOf(this string text, string str, StringComparison comparisonType)
{
    IList<int> allIndexOf = new List<int>();
    int index = text.IndexOf(str, comparisonType);
    while(index != -1)
    {
        allIndexOf.Add(index);
        index = text.IndexOf(str, index + 1, comparisonType);
    }
    return allIndexOf;
}

有了这个就很简单了:

if(email.AllIndexOf("@", StringComparison.OrdinalIgnoreCase).Count > 1)
{
    // ...
}