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

问题描述 投票:0回答:5

使用String类的

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

c# .net
5个回答
75
投票

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

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

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


15
投票

没有不区分大小写的版本。使用

IndexOf
代替(或者使用正则表达式,尽管不推荐这样做,而且太过分了)。

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

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


7
投票

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

示例:

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

2
投票

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


1
投票
string myString = "someTextorMaybeNot";
myString.ToUpper().Contains( "text".ToUpper() );
© www.soinside.com 2019 - 2024. All rights reserved.