Regex.Replace, String.Replace или StringBuilder.Replace, какой самый быстрый?
Мне нужно заменить все System.Environment.Newline(s)
в строке, возвращаемой моей функцией с System.Environment.Newline + \t
(поскольку я пытаюсь применить отступ), и мне нужно сделать это несколько раз.
У меня вопрос, какой из них является наиболее эффективным способом сделать это?
я знаю это StringBuilder
быстрее чем String.Replace
но я не знаю о Regex.Replace
,
2 ответа
Если вы просто пытаетесь сделать это в одной строке, я бы ожидал string.Replace
быть быстрым, как и все остальное. StringBuilder
полезно, когда вы хотите выполнить несколько отдельных шагов и не создавать промежуточную строку на каждом шаге.
Вы тестировали? string.Replace
выяснить, достаточно ли это быстро для вас?
Лично я бы начал использовать регулярные выражения только тогда, когда имел дело с шаблоном, а не с фиксированной последовательностью символов. Если это абсолютно необходимо, вы, конечно же, можете это оценить.
Однако скомпилированное регулярное выражение будет работать быстрее, если только строка не массивна и не выполняется на множестве строк, String.Replace()
это путь ради читабельности.