Sie können dafür einen einfachen regulären Ausdruck verwenden:
%Vor%Ich stelle fest, dass diese Frage ziemlich alt ist, aber es gibt eine andere Option, die Regex nicht einschließt, oder manuell die Zeichenfolge durchläuft und ersetzt:
%Vor%Und das C # -Aquivalent:
%Vor% Verwenden eines "Null" -Werts als Trennzeichen auf String.Split
bewirkt, dass das Teilzeichenzeichen alle Zeichen sind, die true zurückgeben, wenn sie an Char.IsWhiteSpace
. Wenn Sie die Methode auf diese Weise aufrufen, wird die Zeichenfolge in alle Leerzeichen aufgeteilt, die leeren Zeichenfolgen entfernt und dann mit einem einzelnen Leerzeichen zwischen den einzelnen geteilten Datenelementen erneut verknüpft.
Was Sie eigentlich wollen, ist das Komprimieren von mehreren weißen Leerräumen zu einem einzigen Leerzeichen. Eine Möglichkeit besteht darin, nach zwei Leerzeichen zu suchen und sie durch ein einzelnes Leerzeichen zu ersetzen, bis keine zwei benachbarten Leerzeichen mehr vorhanden sind das:
%Vor%Dies ist jedoch nicht narrensicher, weil einige Ideasyncracies von .net-Strings dazu führen könnten eine Endlosschleife, aber nur für einige sehr seltsame Eingaben.
EDIT: Diese bestimmte Verarbeitung ist schneller (und einfacher) mit einem regulären Ausdruck, wie in den anderen Antworten gezeigt.