Vérifier si la chaîne se termine par un certain motif

Si j'ai une chaîne comme:

This.is.a.great.place.too.work.

ou alors:

This/is/a/great/place/too/work/

que mon programme devrait me donner que la phrase est valide et qu'elle a du "travail".


Si j'ai:

This.is.a.great.place.too.work.hahahha

ou alors:

This/is/a/great/place/too/work/hahahah

alors mon programme ne doit pas me donner qu'il y a un "travail" dans la phrase.


Je regarde donc les chaînes java pour trouver un mot à la fin de la phrase ayant .ou ,ou /avant. Comment puis-je atteindre cet objectif?


Solution du problème

C'est très simple, l' Stringobjet a une endsWithméthode.

D'après votre question, il semble que vous vouliez soit /, ,soit .comme délimiteur défini.

Alors:

String str = "This.is.a.great.place.to.work.";
if (str.endsWith(".work.") || str.endsWith("/work/") || str.endsWith(",work,"))
//...

Vous pouvez également le faire avec la matchesméthode et une regex assez simple :

if (str.matches(".*([.,/])work\\1$"))

En utilisant la classe de caractères [.,/]spécifiant un point, une barre oblique ou une virgule, et une référence arrière, \1qui correspond à l'une des alternatives trouvées, le cas échéant.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"