C#-有效检查字符串是否在特定位置包含字符串(类似于regionMatches)

例如,我可能具有字符串"Hello world!",并且我想检查从位置6(从0开始)开始的子字符串是否为"world"-在这种情况下为true。

喜欢的东西"Hello world!".Substring(6).StartsWith("world", StringComparison.Ordinal)会做,但它涉及到一个堆分配这应该是不需要这样的事情。

(对于我来说,如果从位置6开始的字符串对于比较而言太短,我不希望出现边界错误-我只想返回false。但是,这很容易编写代码,因此也会出现边界错误的解决方案欢迎。)

在Java中,“ regionMatches”可用于实现此效果(带有bounds错误),但是在C#中找不到等效项。

只是为了抢先-显然ContainsIndexOf是不好的解决方案,因为他们做不必要的搜索。(您知道有人会发布此信息!)

如果所有其他方法均失败,则可以为此快速编写我自己的函数-主要是我想知道是否有我遗漏的内置函数。

谢尔盖(Sergey Kalinichenko)

显然ContainsIndexOf是坏的解决方案,因为他们做不必要的搜索

实际上,这是不正确的:过多的负载IndexOf使您可以控制寻找匹配项的距离。如果您让它停留在一个特定的索引上,它将完全达到您想要实现的目标。

这是IndexOf您可以使用的三个参数的重载传递count参数的目标长度将阻止IndexOf考虑其他任何位置:

var big = "Hello world!";
var small = "world";
if (big.IndexOf(small, 6, small.Length) == 6) {
    ...
}

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查字符串是否包含C ++中的字符串

使用C#检查字符串是否在字符串数组中包含字符串

如何检查字符串的末尾是否包含子字符串-C

如何完全检查字符串是否等于c#中字符串中包含的单词?

检查字符串的语法-C#

C#:检查字符串中是否包含用逗号分隔的字符串

检查字符串是否在C#r中包含特定顺序的字符

C#检查字符串数组中的特定字符串

检查字符串是否包含带有正则表达式的独立“ c ++”

检查字符串是否确实包含文本C#

检查字符串是否在C中仅包含空格字符

检查字符串是否包含文件c#的关键字

C#检查JSON文件是否包含字符串

在C中创建类似Scrabble的游戏。如何检查字符串是否包含某些字符,然后将字符引用到数组并相应地评分

C#检查字符串列表是否包含某些字符串

检查给定字符串是否为C回文的有效方法

C ++:检查字符串是否为有效的MD5十六进制哈希

检查字符串是否包含数字c#

检查字符串中的数字是否在C#中包含有效年份

C#如何检查字符串数组元素是否在字符串开头?

C#如何检查字符串是否连续包含3个相同字母

C#检查字符串是否是句子

C#检查字符是否按固定顺序出现在字符串中

C中的正则表达式,检查字符串是否包含特定字符

检查字符串在C中是否为有效枚举

检查字符串是否包含其他字符串 C#

MongoDB C# 驱动程序 -> 检查字符串是否包含列表(字符串)中的元素

C# 检查字符串是否存在,如果存在则显示该字符串

检查字符串中的字母或空格 C#