Vielleicht liegt es außerhalb Ihrer Anfrage, aber kann ich Sie bitten, sich einen Moment Zeit zu nehmen, um über die Verwendung des von mir vorgeschlagenen regulären Ausdrucks nachzudenken?
Was mir bei dieser Art von Fragen aufgefallen ist, schlägt ziemlich jeder vor, das letzte Zeichen einer bestimmten Zeichenfolge zu entfernen. Dies entspricht jedoch nicht der Definition der Trimmmethode.
Trimmen - Entfernt alle Vorkommen von Leerzeichen am Anfang und Ende dieser Instanz.
Beachten Sie, wenn Sie alle Zeichen mit demselben Wert entfernen möchten, dh (!!!!), entfernt die obige Methode alle Existenzen von '!' vom Ende der Zeichenfolge, aber wenn Sie nur das letzte Zeichen entfernen möchten, sollten Sie Folgendes verwenden:
Dies ist besser, solange Sie immer wissen, welches Zeichen Sie am Ende des Strings entfernen möchten.
Nimrod Shory
1
Hallo Vash, was denkst du über meine Lösung mit einem RegEx? Es erfüllt die Anfrage des Thqr und erlaubt das Entfernen des '!' char aus jeder "Welt!" Ausdruck, wo immer der Ausdruck platziert wird, in nur einer Codezeile.
Marcello Faga
24
-1 Diese Lösung entfernt alle gleichen Endzeichen! ZB würde es "Hallo !!!!!!!!" in "Hallo", wodurch mehr als das letzte Zeichen entfernt wird.
Kugel
1
@ Kugel, du hast vollkommen recht, und deshalb solltest du noch einmal meine Antwort lesen. Zur Erklärung OP fragen Sie nicht, wie Sie das letzte Zeichen entfernen, sondern wie Sie es zuschneiden.
Damian Leszczyński - Vash
1
@Vash - wie entferne ich ein einfaches Anführungszeichen 'mit der Methode - "Hallo! Welt!". TrimEnd ('! ');
Stellen Sie nur sicher, dass Ihr String mindestens 1 Zeichen enthält.
Nimrod Shory
Stellen Sie außerdem sicher, dass Ihre Zeichenfolge immer mit dem Zeichen endet, das Sie entfernen möchten. EG: "Hello! World" würde als "Hello! Worl" enden.
Ich habe mich dafür entschieden, nur um die Abwertung ohne Kommentar auszugleichen. Hasse es, wenn Leute das tun.
Jeff Reddy
2
Dies könnte daran liegen, dass es keine TrimEnd()Methode gibt, und wenn dies der Fall wäre, könnte der nachfolgende Substring(..)Aufruf bei kurzen Zeichenfolgen fehlschlagen.
Ich habe den Weg eingeschlagen, eine Erweiterung mit TrimEnd zu schreiben, nur weil ich sie bereits inline verwendet habe und damit zufrieden war ... dh:
"!Something!".TrimLeadingCharacter('X');// Result '!Something!' (No Change)"!Something!".TrimTrailingCharacter('S');// Result '!Something!' (No Change)"!Something!".TrimEndsCharacter('g');// Result '!Something!' (No Change)"!Something!".TrimLeadingCharacter('!');// Result 'Something!' (1st Character removed)"!Something!".TrimTrailingCharacter('!');// Result '!Something' (Last Character removed)"!Something!".TrimEndsCharacter('!');// Result 'Something' (End Characters removed)"!!Something!!".TrimLeadingCharacter('!');// Result '!Something!!' (Only 1st instance removed)"!!Something!!".TrimTrailingCharacter('!');// Result '!!Something!' (Only Last instance removed)"!!Something!!".TrimEndsCharacter('!');// Result '!Something!' (Only End instances removed)
Antworten:
Weiterlesen
BEARBEITEN:
Was mir bei dieser Art von Fragen aufgefallen ist, schlägt ziemlich jeder vor, das letzte Zeichen einer bestimmten Zeichenfolge zu entfernen. Dies entspricht jedoch nicht der Definition der Trimmmethode.
MSDN-Trim
Unter dieser Definition ist das Entfernen nur des letzten Zeichens aus der Zeichenfolge eine schlechte Lösung.
Wenn wir also "Letztes Zeichen von Zeichenfolge abschneiden" möchten, sollten wir so etwas tun
Beispiel als Erweiterungsmethode:
Beachten Sie, wenn Sie alle Zeichen mit demselben Wert entfernen möchten, dh (!!!!), entfernt die obige Methode alle Existenzen von '!' vom Ende der Zeichenfolge, aber wenn Sie nur das letzte Zeichen entfernen möchten, sollten Sie Folgendes verwenden:
quelle
quelle
oder
... für den Fall, dass Sie ein Nicht-Leerzeichen am Ende entfernen möchten.
quelle
TrimEnd()
Methode gibt, und wenn dies der Fall wäre, könnte der nachfolgendeSubstring(..)
Aufruf bei kurzen Zeichenfolgen fehlschlagen.quelle
Versuche dies:
quelle
quelle
Das andere Beispiel für das Trimmen des letzten Zeichens aus einer Zeichenfolge:
Sie können es in eine Erweiterungsmethode einfügen und verhindern, dass es eine Nullzeichenfolge usw. enthält.
quelle
quelle
Sie können dies auch verwenden:
quelle
Leicht modifizierte Version von @Damian Leszczyński - Vash, die sicherstellt, dass nur ein bestimmter Charakter entfernt wird.
quelle
Ich habe den Weg eingeschlagen, eine Erweiterung mit TrimEnd zu schreiben, nur weil ich sie bereits inline verwendet habe und damit zufrieden war ... dh:
Stellen Sie sicher, dass Sie den Namespace mithilfe der statischen Klasse in Ihre Klassen aufnehmen. P und Verwendung sind:
quelle
Sehr einfach und unkompliziert:
quelle
Ein Beispiel für eine Erweiterungsklasse zur Vereinfachung: -
Verwendung
quelle
Wenn Sie das '!' Zeichen aus einem bestimmten Ausdruck (in Ihrem Fall "Welt"), dann können Sie diesen regulären Ausdruck verwenden
Das Sonderzeichen $ 1 enthält alle übereinstimmenden "Welt" -Ausdrücke und wird verwendet, um die ursprüngliche "Welt" zu ersetzen. Ausdruck
quelle