从大字符串中删除数字时出现性能问题

本文关键字:性能 问题 数字 字符串 删除 | 更新日期: 2023-09-27 17:54:39

我有一个包含以下代码的函数:

Text = Text.Where(c => !Char.IsDigit(c)).Aggregate<char, string>(null, (current, c) => current + c);

但速度相当慢。有没有办法让我加快速度?

从大字符串中删除数字时出现性能问题

试试这个正则表达式:

Text = Regex.Replace(Text, @"'d+", "");

CCD_ 1比仅仅CCD_ 2更有效,因为它一次删除多个连续数字。

是的,您可以使用Regex.Replace:

Text = Regex.Replace(Text, "''d", "");

正则表达式匹配一个数字。CCD_ 4将其在CCD_ 5字符串中的每次出现替换为空字符串CCD_。

所有这些串联可能会杀死你。最简单/最好的可能是正则表达式:

Text = Regex.Replace(Text, "''d", "");

或者,您可以尝试只创建一个新的字符串实例:

Text = new string(Text.Where(c => !Char.IsDigit(c)).ToArray())

试用Regex.Replace

在指定的输入字符串中,替换与正则表达式匹配的字符串具有指定替换字符串的表达式模式。

Regex.Replace(Text, "''d+", "");

这是一个DEMO