Afficher les mots d'une certaine longueur
Résolu/Fermé
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
-
25 nov. 2017 à 14:45
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - 25 nov. 2017 à 17:23
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - 25 nov. 2017 à 17:23
A voir également:
- Afficher les mots d'une certaine longueur
- Afficher mot de passe wifi android - Guide
- Identifiants et mots de passe - Guide
- Afficher mot de passe wifi - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Dimension tv 43 pouces longueur et largeur ✓ - Forum Ecran
4 réponses
Whismeril
Messages postés
19026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 avril 2024
931
25 nov. 2017 à 15:09
25 nov. 2017 à 15:09
Bonjour
déjà dans ton texte exemple, y'a pas de mot de longueur égale à 3, donc cherches longueur supérieure ou égale à 3?
Ensuite, tu cherches à faire l'inverse de ce que tu expliques, c'est à dire
Il me semble à la fois plus simple et plus logique à code d'extraire les mots, et de traiter l'extraction
voilà un exemple qui extrait les mots de longueur 3 ou plus, sans les espaces, ponctuation, etc...
déjà dans ton texte exemple, y'a pas de mot de longueur égale à 3, donc cherches longueur supérieure ou égale à 3?
Ensuite, tu cherches à faire l'inverse de ce que tu expliques, c'est à dire
J'aimerai afficher les motset le code que tu montres essayes d'effacer des parties de texte.
Il me semble à la fois plus simple et plus logique à code d'extraire les mots, et de traiter l'extraction
voilà un exemple qui extrait les mots de longueur 3 ou plus, sans les espaces, ponctuation, etc...
http://regexstorm.net/tester?p=%28%3f%3c%3d%5cb%29%5cw%7b3%2c%7d%28%3f%3d%5cb%29&i=jess+j6ess+%c3%a7a+ca+s%28+!+%3f123.+Coucoucoucoucocuocucoucoucou%2c
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
25 nov. 2017 à 15:44
25 nov. 2017 à 15:44
Bonjour,
Un exemple :
Ce qui donne :
Un exemple :
import java.util.stream.Stream; Stream.of(phrase.split(" ")) .filter(s -> s.length() >= 3) .forEach(System.out::println);
Ce qui donne :
jess
j6ess
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
3
Modifié le 25 nov. 2017 à 16:10
Modifié le 25 nov. 2017 à 16:10
Bonjour,
Est-ce qu'il y aura moyen de mettre Stream.of(phrase.split(" ")).filter(s -> s.length() >= 3);
dans une variable de type String ?
Car j'ai vraiment besoin de le faire à l'aide d'une variable string pour l'écrire sur un texte avec "append".
Est-ce qu'il y aura moyen de mettre Stream.of(phrase.split(" ")).filter(s -> s.length() >= 3);
dans une variable de type String ?
Car j'ai vraiment besoin de le faire à l'aide d'une variable string pour l'écrire sur un texte avec "append".
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
>
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
25 nov. 2017 à 16:12
25 nov. 2017 à 16:12
Oui, il suffit de remplacer l'opération finale (où je fais le println) par un collecteur :
Ce qui donne :
String result = Stream.of(phrase.split(" ")) .filter(s -> s.length() >= 3) .collect(Collectors.joining(" "));
Ce qui donne :
jess j6ess
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
3
>
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
Modifié le 25 nov. 2017 à 16:25
Modifié le 25 nov. 2017 à 16:25
Merci beaucoup, cela fonctionne très bien
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
3
25 nov. 2017 à 15:18
25 nov. 2017 à 15:18
Merci de m'avoir répondu. Oui, je me suis mal exprimé. Je voulais dire que je voulais récupérer et afficher les mots de longueur 3 ou plus.
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
3
Modifié le 25 nov. 2017 à 15:22
Modifié le 25 nov. 2017 à 15:22
Je pensais supprimer les mots < 3 puis les afficher. Par contre, je ne comprends pas très bien la solution que vous m'avez donné ? Donc en essayant le code : texte.replaceAll("(?<=\\b)\\w{3,}(?=\\b)", "");
j'ai comme résultat: ça ca s( ! ?
j'ai comme résultat: ça ca s( ! ?
Whismeril
Messages postés
19026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 avril 2024
931
25 nov. 2017 à 17:06
25 nov. 2017 à 17:06
Oui, parce que tu cherches à effacer au lieu d’extraire.....
Ce que je t’ai proposé est de te servir des captures, pas de faire un replace.
D’un autre côté la solution de KX est bien aussi.
Ce que je t’ai proposé est de te servir des captures, pas de faire un replace.
D’un autre côté la solution de KX est bien aussi.
histl4000
Messages postés
129
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
12 juillet 2018
3
>
Whismeril
Messages postés
19026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 avril 2024
25 nov. 2017 à 17:23
25 nov. 2017 à 17:23
Oui, je m'en suis rendu compte par après. Je ne connaissais pas le site que vous m'avez envoyer. Il pourra me servir plus tard. Merci.