如何比较字符串的一部分

本文关键字:字符串 一部分 比较 何比较 | 更新日期: 2023-09-27 17:56:25

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

如何比较字符串的一部分

如果您的字符串长度至少为 5 个字符,那么string.Compare应该可以工作:

var match = string.Compare(str1, 0, str2, 0, 5) == 0;
bool startsWithFoo = "foobar".StartsWith( "foo" );

In .NetCore,或带有System.Memory nuget包的.Net框架:

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

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

试试这个:

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

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

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