Peut-être que cela dépasse votre demande, mais puis-je vous demander de prendre un moment pour réfléchir à l'utilisation de l'expression régulière que j'ai proposée?
Ce que j'ai remarqué dans ce type de questions, tout le monde suggère de supprimer le dernier caractère d'une chaîne donnée. Mais cela ne répond pas à la définition de la méthode Trim.
Trim - Supprime toutes les occurrences de caractères d'espace blanc du début et de la fin de cette instance.
Notez que si vous souhaitez supprimer tous les caractères de même valeur, c'est-à-dire (!!!!), la méthode ci-dessus supprime toutes les existences de '!' à la fin de la chaîne, mais si vous ne souhaitez supprimer que le dernier caractère, vous devez utiliser ceci:
C'est mieux tant que vous savez toujours quel caractère vous voulez supprimer de la fin de la chaîne.
Nimrod Shory
1
Salut Vash, que pensez-vous de ma solution utilisant un RegEx? Il répond à la demande du Thqr et permet de supprimer le '!' char de n'importe quel "monde!" expression, partout où l'expression est placée, dans une seule ligne de code.
Marcello Faga
24
-1 Cette solution supprimera tous les mêmes caractères de fin! Par exemple, cela deviendrait "Bonjour !!!!!!!!" dans "Hello", qui supprime plus que le dernier caractère.
Kugel
1
@Kugel, vous avez tout à fait raison, et c'est pourquoi vous devriez lire une fois de plus ma réponse. Pour l'explication OP, ne demandez pas comment supprimer le dernier caractère, mais comment le couper.
Damian Leszczyński - Vash
1
@Vash - comment supprimer un guillemet simple 'en utilisant la méthode - "Hello! World!". TrimEnd ('! ');
Assurez-vous simplement que yourString contient au moins 1 caractère.
Nimrod Shory
assurez-vous également que votre chaîne se termine toujours par le caractère que vous souhaitez supprimer EG: "Hello! World" se terminera par "Hello! Worl".
J'ai voté pour juste pour compenser le vote négatif sans commentaire. Déteste quand les gens font ça.
Jeff Reddy
2
C'est peut-être parce qu'il n'y a pas de TrimEnd()méthode et s'il y en avait, cela pourrait faire Substring(..)échouer l'appel suivant sur des chaînes courtes.
J'ai pris le chemin de l'écriture d'une extension en utilisant TrimEnd juste parce que je l'utilisais déjà en ligne et j'en étais satisfait ... c'est-à-dire:
"!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)
Si vous souhaitez supprimer le "!" caractère d'une expression spécifique ("monde" dans votre cas), vous pouvez alors utiliser cette expression régulière
Réponses:
Lire la suite
ÉDITER:
Ce que j'ai remarqué dans ce type de questions, tout le monde suggère de supprimer le dernier caractère d'une chaîne donnée. Mais cela ne répond pas à la définition de la méthode Trim.
MSDN-Trim
Selon cette définition, supprimer uniquement le dernier caractère de la chaîne est une mauvaise solution.
Donc, si nous voulons "Couper le dernier caractère de la chaîne", nous devons faire quelque chose comme ça
Exemple comme méthode d'extension:
Notez que si vous souhaitez supprimer tous les caractères de même valeur, c'est-à-dire (!!!!), la méthode ci-dessus supprime toutes les existences de '!' à la fin de la chaîne, mais si vous ne souhaitez supprimer que le dernier caractère, vous devez utiliser ceci:
la source
la source
ou
... au cas où vous souhaiteriez supprimer un caractère non blanc à la fin.
la source
TrimEnd()
méthode et s'il y en avait, cela pourrait faireSubstring(..)
échouer l'appel suivant sur des chaînes courtes.la source
Essaye ça:
la source
la source
L'autre exemple de découpage du dernier caractère d'une chaîne:
Vous pouvez le mettre dans une méthode d'extension et l'empêcher d'avoir une chaîne nulle, etc.
la source
la source
vous pouvez également utiliser ceci:
la source
Très facile et simple:
la source
Version légèrement modifiée de @Damian Leszczyński - Vash qui garantira que seul un personnage spécifique sera supprimé.
la source
J'ai pris le chemin de l'écriture d'une extension en utilisant TrimEnd juste parce que je l'utilisais déjà en ligne et j'en étais satisfait ... c'est-à-dire:
Assurez-vous d'inclure l'espace de noms dans vos classes à l'aide de la classe statique; P et l'utilisation est:
la source
Un exemple de classe d'extension pour simplifier ceci: -
Usage
la source
Si vous souhaitez supprimer le "!" caractère d'une expression spécifique ("monde" dans votre cas), vous pouvez alors utiliser cette expression régulière
le caractère spécial $ 1 contient toutes les expressions "monde" correspondantes, et il est utilisé pour remplacer le "monde!" d'origine. expression
la source