Ich habe mich gerade gefragt, wie man am einfachsten einen String ersetzt, der später ersetzt werden muss.
Zum Beispiel:
%Vor%[[]Hello World[]]
[[[]]Hello World[]]
Der Grund ist offensichtlich die zweite Ersetzung der bereits modifizierten Zeichenfolge.
Wie kann man alle Vorkommen von "schlechten" Zeichen durch Zeichen ersetzen, die "schlechte" Zeichen enthalten?
Eine schnelle Messung aller Ansätze ergab, dass der StringBuilder der effizienteste Weg ist.
190kb Datei (alle in Millisekunden)
%Vor%
7 MB Datei
%Vor%
Übrigens war der direkte StringBuilder
-Ansatz von John doppelt so schnell wie der Aggregate Ansatz von Sehe .
Ich habe eine Erweiterung daraus gemacht:
%Vor%Hier ist ein sehr uncool Weg, es zu tun. Aber es hat den Vorteil, dass ich ziemlich narrensicher bin, denke ich, und keine Regex benutze (falls du Regex lieber nicht benutzen willst).
%Vor%Wie wäre es mit:
%Vor%Beachten Sie, dass dadurch das Problem mit mehreren Schleifen vermieden wird, aber mindestens so viele Arrays erstellt werden, wie Zeichen in der Eingabezeichenfolge enthalten sind, sodass sie in Bezug auf die Leistung möglicherweise nicht optimal ist.