RepliKode
Messages postés3Date d'inscriptionmardi 7 juin 2022StatutMembreDernière intervention 8 juin 2022
-
Modifié le 8 juin 2022 à 07:46
Whismeril
Messages postés18392Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 mai 2023
-
8 juin 2022 à 14:12
Bonjour,
j'essaie de coder un programme le plus simple possible qui permettrait de supprimer les espaces d'un Texte (String) à l'aide d'un code en Java.
Il y a néanmoins une petite contrainte qui rend ce problème nettement plus compliqué :
Un espace simple "_" devra être supprimé --> ""
Mais un double espace "__" sera laissé tel quel --> "__".
J'avais d'abord pensé à utiliser la fonction replaceAll mais étant donné la contrainte ci-dessus je ne sais pas si c'est la bonne méthode :
public class Main {
public static void main(String[] args) {
String str = "T ex te d e Te st";
str = str.replaceAll(" ", "");
System.out.println("résultat : " + str);
}
}
J'aurai besoin d'aide pour trouver la solution la plus simple à mon problème,
Merci :)
Whismeril
Messages postés18392Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 mai 2023623 7 juin 2022 à 17:00
Bonjour
Tu connais les regex?
RepliKode
Messages postés3Date d'inscriptionmardi 7 juin 2022StatutMembreDernière intervention 8 juin 2022 7 juin 2022 à 17:27
J'ai vu vite fait ce que c'était mais il me reste le même problème.
En faisant la sélection je n'arrive pas à différencier les simple ou les doubles espaces.
Si je dis de supprimer les espaces simples avec [^ ]{1} ca me supprime juste tous les espaces sans faire de tri.
Whismeril
Messages postés18392Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 mai 2023623 7 juin 2022 à 17:43
Oui parce qu'il faut lui dire de sélectionner les espaces qui ne sont ni suivis si précédé par un espace et de les remplacer par rien.
Voici un exemple sur regex101 https://regex101.com/r/LWfndO/2
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126
>
Whismeril
Messages postés18392Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 mai 2023 8 juin 2022 à 07:45
Bonjour,
Pour la pérennité de ta réponse je préfère copier ta regex ici pour éviter de dépendre d'un site externe qui pourrait l'effacer.
Remarque : le premier argument de replaceAll est une regex, il suffit donc de la prendre telle qu'elle, sans changer le reste du code.
Whismeril
Messages postés18392Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention26 mai 2023623
>
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023 8 juin 2022 à 08:15
Bonjour
Certes, j'attendais un éventuel retour de ReplikCode avant de pérenniser.
RepliKode
Messages postés3Date d'inscriptionmardi 7 juin 2022StatutMembreDernière intervention 8 juin 2022 8 juin 2022 à 10:38
Merci pour vos retours, je pense maintenant avoir ce qu'il faut pour résoudre le problème.
Je posterai ici mon algo à jour de que j'aurai eu le temps de le modifier.
7 juin 2022 à 17:27
En faisant la sélection je n'arrive pas à différencier les simple ou les doubles espaces.
Si je dis de supprimer les espaces simples avec [^ ]{1} ca me supprime juste tous les espaces sans faire de tri.
7 juin 2022 à 17:43
Voici un exemple sur regex101 https://regex101.com/r/LWfndO/2
8 juin 2022 à 07:45
Pour la pérennité de ta réponse je préfère copier ta regex ici pour éviter de dépendre d'un site externe qui pourrait l'effacer.
Remarque : le premier argument de replaceAll est une regex, il suffit donc de la prendre telle qu'elle, sans changer le reste du code.
Pour avoir plus d'infos sur les regex en Java, il faut regarder la documentation de la classe Pattern :
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html
8 juin 2022 à 08:15
Certes, j'attendais un éventuel retour de ReplikCode avant de pérenniser.
Bonne journée