删除string中第一个字符的最快方法

假设我们有以下string

string data= "/temp string"; 

如果我们想删除第一个字符/我们可以通过很多方法来完成,比如:

 data.Remove(0,1); data.TrimStart('/'); data.Substring(1); 

但是..真的我不知道哪一个有最好的algorithm,并做得更快..
有一个是最好的还是全部都是一样的?

3 Solutions collect form web for “删除string中第一个字符的最快方法”

第二个选项实际上和其他的不一样 – 如果string是“/// foo”,它将变成“foo”而不是“// foo”。

第一个选项比第三个选项需要更多的工作来理解 – 我会将Substring选项视为最常见和可读的。

(很显然,每个人作为一个单独的陈述不会做任何有用的事情 – 你需要将结果分配给一个variables,可能是data本身。)

我不会在这里考虑性能,除非它真的成为你的问题 – 在这种情况下,你知道的唯一方法就是有testing用例,然后很容易为每个选项运行这些testing用例,比较结果。 我希望Substring可能是这里最快的,因为Substring总是从原始input的一个块中创build一个string,而Remove必须至less可能将起始块和结束块粘合在一起。

我猜想RemoveSubstring会和第一个地方TrimStart ,因为它们都是固定大小的string,而TrimStart从左边开始扫描每个字符的testing,然后必须执行完全一样的作为另外两种方法工作。 不过,严重的是,这是分裂的头发。

如果你真的关心,你可以分析一下。 写一个循环的许多迭代,看看会发生什么。 然而,有可能这不是你的应用程序的瓶颈,TrimStart似乎是最正确的语义。 在优化之前努力编写可读的代码。

  • 在java中的长度和长度()
  • 如何findstring中的第n个字符?
  • 我怎样才能截断一个NSString到一个设定的长度?
  • 比较C#中的string和对象
  • 为什么string文字l值而所有其他文字是r值?
  • 如何获得某个字符之前的string的最后一部分?
  • 如何在页面加载时在后台bean中处理GET查询stringURL参数?
  • 检查List <String>是否包含唯一string的最快方法
  • 如何统计string中的字符的频率?
  • 如何在node.js中执行多行string?
  • 在WPF绑定中将值设置为null