Ersetzen Sie das erste Wort durch das letzte Wort in C #

8

Ich möchte die folgende Zeile in C # ersetzen. Ersetzen Sie das erste Wort durch das letzte Wort. Ich muss '[' und ']' auch vom letzten Wort entfernen.

%Vor%

Die Ausgabe sollte

sein %Vor%

Danke

    
NETQuestion 11.11.2009, 22:59
quelle

6 Antworten

17
%Vor%     
Martin Jonáš 11.11.2009, 23:10
quelle
5

Nur zum Spaß habe ich einen kleinen Benchmark geschrieben, um all diese Antworten zu testen (einschließlich meiner anderen Antwort oben). Hier sind die Ergebnisse auf meiner Workstation (32-bit Core 2 Duo @ 2.66GHz) für 5M Wiederholungen mit einem Release Build:

  • LINQ: 10.545 Sekunden
  • mein Split + StringBuilder Weg: 3,633 Sekunden
  • wibecks Split-and-Join-Methode! : 3,32 Sekunden
  • (unkompiliert) Regex: 3,845 Sekunden
  • (kompiliert) regex: 12.431 Sekunden

Ergebnisse: wibecks Split-and-Join-Lösung gewinnt, aber die (OP-selektierte) Regex-Lösung war nur 15% langsamer, was mich überrascht hat. Ich habe 100% oder mehr schlechter erwartet. Ein großes Lob an die .NET Regex-Entwickler für Geschwindigkeit.

Meine eigene Lösung (mit Split und StringBuilder) war, dachte ich, für die Geschwindigkeit optimiert, erfordert aber viel mehr Code und macht es eigentlich nicht schnell. Doh!

Am überraschendsten war, dass ich eine kompilierte Regex-Lösung ausprobierte und sie war fast 3x langsamer als die unkompilierte Regex (und ich habe die Kompilierungszeit nicht in die Ergebnisse eingeschlossen - einschließlich der Kompilierung wäre es noch schlimmer). So viel zum kompilierten Regex Perf Vorteil.

LINQ war, wie ich erwartet hatte, sehr langsam - der Overhead all dieser zusätzlichen Objekte und Methodenaufrufe summiert sich wirklich.

Hier ist der Testcode:

%Vor%     
Justin Grant 12.11.2009 00:00
quelle
4
%Vor%     
Wil P 11.11.2009 23:18
quelle
1

Versuchen Sie:

%Vor%     
Bart Kiers 11.11.2009 23:10
quelle
0

Es ist hässlich, aber es funktioniert.

%Vor%     
Winston Smith 11.11.2009 23:09
quelle
0

Hier ist ein Weg, es zu tun. Beachten Sie, dass ich davon ausgehe, dass die Zeichenfolge mindestens 1 Wort lang ist.

%Vor%

OOPS, oben ein Tippfehler behoben. Bedient mich, Code zu schreiben, ohne zuerst zu kompilieren. : -)

    
Justin Grant 11.11.2009 23:07
quelle

Tags und Links