如何比较字符串的一部分?

时间:2011-05-15 20:59:28

标签: c#

我有一个字符串“01-02”,我想将它与另一个字符串“02-03-1234”进行比较。如果一个字符串的前五个字符等于另一个字符串的前五个字符,是否有一种简单的方法可以比较?

Marife

5 个答案:

答案 0 :(得分:16)

如果您的字符串长度至少为5个字符,则string.Compare应该有效:

var match = string.Compare(str1, 0, str2, 0, 5) == 0;

答案 1 :(得分:15)

bool startsWithFoo = "foobar".StartsWith( "foo" );

答案 2 :(得分:2)

只需使用Substring方法获取部分字符串,并首先验证字符串的长度,除非您完全确定它们始终至少为五个字符:

if (str1.Lenght >= 5 && str2.Length >= 5 && str1.Substring(0, 5) == str2.Substring(0, 5)) ...

答案 3 :(得分:2)

在.NetCore或带有System.Memory nuget包的.Net框架中:

str1.Length >= 5 && str2.Length >= 5 && str1.AsSpan(0, 5).SequenceEqual(str2.AsSpan(0, 5))

这是经过高度优化的,将是此处所有选项中性能最好的。

答案 4 :(得分:1)

试试这个:

if (str1.Lenght >= 5 && 
    str2.StartsWith(str1.Substring(0, 5)))
{
    // Do what you please
}