如何从C#中的字符串中删除适合模式的尾随数字?

Piy*_*ush -2 .net c# string .net-2.0

我有以下字符串: 0000015700

我需要一个执行以下操作的算法:

  • 转到第一个数字而不是0从右到左(7在这种情况下)
  • 7从右到左开始提取6位数(输出将是000157

它无法使用LINQ实现,因为该项目在.NET 2.0框架上运行.

我如何在C#中执行此操作?

Jon*_*eet 8

如果你不太关心性能并且你有LINQ,你可以这样做:

var result = new string(text.Reverse()
                            .SkipWhile(c => c == '0')
                            .Take(6)
                            .Reverse()
                            .ToArray());
Run Code Online (Sandbox Code Playgroud)

希望这应该是不言自明的:)

  • 我不认为linq在这里很好,当我们可以使用本机字符串函数时,它们应该更快更容易使用. (2认同)
  • @SaeedAmiri:我不知道 - 我个人觉得我的版本更容易理解.特别是,我认为你的代码实际上可能有一个错误... (2认同)
  • @Piyush:你之前没有提到这个的任何理由?在这种情况下,Saeed的方法可能是最好的.将来,请在问题中包含要求. (2认同)