【发布时间】:2015-03-05 16:13:04
【问题描述】:
例如,我可能有字符串 "Hello world!",我想检查从位置 6(从 0 开始)开始的子字符串是否为 "world" - 在本例中为 true。
"Hello world!".Substring(6).StartsWith("world", StringComparison.Ordinal) 之类的东西可以做到这一点,但它涉及到堆分配,这对于这样的事情应该是不必要的。
(在我的情况下,如果从位置 6 开始的字符串对于比较来说太短,我不希望出现边界错误 - 我只想要 false。但是,这很容易编写代码,所以解决方案会给出一个边界也欢迎出错。)
在 Java 中,'regionMatches' 可用于实现此效果(有边界错误),但我在 C# 中找不到等效项。
只是为了先发制人-显然Contains 和IndexOf 是不好的解决方案,因为它们会进行不必要的搜索。 (你知道有人会发布这个!)
如果所有其他方法都失败了,我很快就会为此编写自己的函数 - 主要是我想知道是否有一个我错过的内置函数。
【问题讨论】:
标签: c# string compare substring