2017-09-18 1 views
1
String val = "this is a string  *" 

Je tente de supprimer le dernier caractère « * » ainsi que tous les espaces précédant la sortie suivante:Supprimer espaces à la fin et se terminant le caractère

String result = "this is a string" 

Quelle est la plus simple et costaud approche à faire ce?

Dois-je sous-traiter le caractère final et ajuster la chaîne ou utiliser regex?

+0

match '\ s * \ * $' et remplacer par une chaîne vide. – anubhava

+0

Merci anub, pouvez-vous expliquer brièvement l'expression régulière? – Ben

+0

Langue dépendante, manipulation de chaîne de base? 'val.substr (0, val.length - 1) .trim()' –

Répondre

1

Pour vérification, vous pouvez utiliser:

\s*\*$ 

Ce qui est 0 ou plusieurs espaces suivis par littéral caractère * avec l'ancre $ pour affirmer la fin de ligne.

Cela doit être remplacé par la chaîne vide "" pour l'enlever.

RegEx Demo

+1

Merci beaucoup, cela a fonctionné parfaitement comme vous l'avez suggéré. Je l'ai modifié en '\ s * \ * \ s $' pour permettre des espaces potentiels après l'astérisque seulement à la fin de la ligne. Merci beaucoup. – Ben

+0

Pour les espaces optionnels après '*', je suggère d'utiliser '\ s * \ * \ s * $' – anubhava