繁体   English   中英

C#字符串比较

[英]C# String Comparison

我正在申请,我必须比较一个特定单词的两个字符串

例如

string a="abc";
string b="abcController";

我必须比较ab才能匹配abc

我正在使用EqualsCompareTo但是它们不起作用

以最简单的方式,您可以使用Contains方法

var a = "abc";
var b = "abcSOMDH";
var c = b.Contains(a);

此方法执行序数比较(区分大小写和不区分文化)。 搜索从该字符串的第一个字符位置开始,并一直持续到最后一个字符位置。

string str1 = "abc";
string str2 = "abcController";
if(str2.Contains(str1))
     ...

采用:

 string a = "abc";
 string b = "abcdefsdfs";
 if (a.Contains(b) || b.Contains(a))
     //DO SOMETHING

使用string.Contains方法

b.Contains(a)

Contains的替代方法是IndexOf

var a = "abc";
var b = "abcSOMDH";
var c = b.IndexOf(a) >= 0; // returns TRUE if b occurs in a
var d = b.IndexOf(a, StringComparison.OrdinalIgnoreCase); // same but case insensitive

来自MSDN的描述:

Reports the zero-based index of the first occurrence of one or more characters, 
or the first occurrence of a string, within this string. The method returns -1 if 
the character or string is not found in this instance.

请快速回答以上答案:使用ToLowerInvariant()或ToUpperInvariant()不是一个好主意。 比较之前,这两个调用都必须创建全新的大写或小写字符串。

而是使用包含IEqualityComparer的Contains()方法的重载,如下所示:

string stringA; stringA.Contains(stringB, StringComparer.CurrentCultureIgnoreCase);

这将进行不区分大小写的比较,而无需分配内存和复制字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM