如何检查字符串中重复出现的字符#
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 regex 或 MailAddress
构造函数。
但是,为了回答您的问题,如果您确实需要类似的东西(用于其他任务),您可以实现这样的扩展方法:
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)
{
// ...
}
我正在开发电子邮件验证并想检查电子邮件中是否有超过 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 regex 或 MailAddress
构造函数。
但是,为了回答您的问题,如果您确实需要类似的东西(用于其他任务),您可以实现这样的扩展方法:
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)
{
// ...
}