以不区分大小写的方式查找子字符串 - C#

时间:2011-12-13 19:04:04

标签: c# .net

  

可能重复:
  Case insensitive contains(string)

使用String类的Contains()方法,可以找到子字符串。 如何以不区分大小写的方式在字符串中查找子字符串?

5 个答案:

答案 0 :(得分:45)

您可以使用IndexOf()方法,该方法采用StringComparison类型:

string s = "foobarbaz";
int index = s.IndexOf("BAR", StringComparison.CurrentCultureIgnoreCase); // index = 3

如果找不到字符串,IndexOf()将返回-1。

答案 1 :(得分:10)

没有不区分大小写的版本。使用IndexOf代替(或者使用正则表达式虽然不推荐使用并且过度使用)。

string string1 = "my string";
string string2 = "string";
bool isContained = string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0;

StringComparison.OrdinalIgnoreCase通常用于更多“程序化”文本,例如您可能生成的路径或常量,并且是字符串比较的最快方法。对于语言文字字符串,请使用StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCase

答案 2 :(得分:4)

如果找到匹配,则包含返回布尔值。如果要搜索不区分大小写,可以在匹配之前使源字符串和字符串匹配大写或小写。

示例:

if(sourceString.ToUpper().Contains(stringToFind.ToUpper()))
{
    // string is found
}

答案 3 :(得分:1)

stringToSearch.ToLower().Contains(stringToSearchFor.ToLower())

答案 4 :(得分:1)

string myString = "someTextorMaybeNot";
myString.ToUpper().Contains( "text".ToUpper() );