使用StringBuilder对字符串执行操作

时间:2016-02-19 06:47:43

标签: c# .net string search stringbuilder

我正在编写一个C#应用程序,该应用程序在string内容中附加,插入,替换和查找string内容。名为editObjects的多个对象正在对所调用的string内容执行这些操作。

我目前正在将StringBuilder对象传递给每个editObject对象,然后每个editObject都会对StringBuilder对象执行操作。

这个问题分为两部分:

我是否正确地说StringBuilder是在string上执行多项操作的最有效方式?

我在2013年发现了这篇文章:Fastest search method in StringBuilder,想知道是否有一些已知代码可以更有效地找到{{1}中string的索引}}?

StringBuilder

1 个答案:

答案 0 :(得分:1)

=AND($L2<10, $L2>3)更快for most string manipulations - 这并不意味着它是所有 多项操作的最佳 StringBuilder上完成。

在您的情况下,您愿意在string内找到string,这需要您执行以下两项操作之一:

  • O(n)处进行标准搜索,迭代整个StringBuilder,这可以通过非常优化的方式完成,就像您在问题中发布的代码一样。

  • StringBuilder的每次添加和删除数据进行索引charsstrings。请注意,建立索引意味着您需要对StringBuilder中添加或删除的每个string进行分析,这会为每个 操作操作带来一点开销

    • 您需要判断应用程序的功能更多以及哪些内容会更多地影响您的应用程序 - StringBuilder 搜索而不是 O(n) O(log(n)) 操作而非 O(n + m) 操作。 (其中O(n)是每次插入/删除的开销除以平均插入/删除m长度)

    • 基本索引图示:

    string indexing

    • 介于两者之间的索引对于余额来说也很好(最多2 string索引/最大3 chars /等......)。