string.replaceAll () производительность страдают от строковой неизменности?

Самая большая проблема, когда контакт с номерами версий C# является тем, что это не связывается с версией Платформы.NET, которой это, кажется, происходит из-за синхронизируемых выпусков между Visual Studio и Платформой.NET.

версия C# на самом деле связывается с компилятором, не платформой. Например, в Visual  Studio  2008 можно записать C# 3.0 и нацелены на Платформу.NET 2.0, 3.0 и 3.5. Номенклатура C# 3.0 описывает версию синтаксиса кода и поддерживавших функций таким же образом, что ANSI C89, C90, C99 описывают синтаксис кода / функции C.

Смотрят на Моно , и Вы будете видеть, что Моно 2.0 (главным образом реализованная версия 2.0 Платформы.NET от спецификаций ECMA) поддерживают синтаксис C# 3.0 и функции.

6
задан serg 9 August 2009 в 00:07
поделиться

2 ответа

Если вы углубитесь в String , вы увидите, что он делегирует replaceAll () в Pattern & Matcher и Matcher.replaceAll () использует StringBuilder для хранения в конечном итоге возвращенного значения.

Так что нет, String.replaceAll () не создает более небольшого количества объектов.

13
ответ дан 9 December 2019 в 20:47
поделиться

вы можете попробовать с StringBuffer / StringBuilder , поскольку они изменяемые CharSequence s:

CharSequence veryBigString = new StringBuilder();
Pattern.compile(regex).matcher(veryBigString).replaceAll(replacement);
-1
ответ дан 9 December 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: