Bonjour,
ayant une chaine comme:
Test (+333),
je veux savoir comment faire en Java pour extraire à chaque fois que "Test" et "+333",
sachant que toutes mes chaines ont sont du genre:
Test (+333)
ABC (+669)
...
Merci
Bonjour,
ayant une chaine comme:
Test (+333),
je veux savoir comment faire en Java pour extraire à chaque fois que "Test" et "+333",
sachant que toutes mes chaines ont sont du genre:
Test (+333)
ABC (+669)
...
Merci
Recherche les index des caractères "(" et ")" dans la chaîne, et extrait les bonnes parties avec des sous chaines avec la méthode substring.
Le plus simple c'est d'utiliser les expression régulières (voir la documentation associée).
Exemple d'expression réguilière qui pourrait d'intéresser:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Pattern p = Pattern.compile("(\\w+)\\(\\+(\\d+)\\)"); //pattern (\w+)\(\+(\d+)\) Matcher m = p.matcher(chaine); if (m.matches){ String text = m.group(1); String nombre = m.group(2); }
Ca reste plus facile à lire que du code avec des substring et des indexof, créant au minimum 2 index à suivrela regexp, en elle meme est une description complete du mécanisme de split qui va etre utilisé, même si, dans une string java, le doublement des \ surcharge un peu
![]()
pour mes chaines de la forme:
ACORES (+35192)
ALASKA (+1907)
AE INMARSAT - A (+8711)
il me semble que l'expression régulière : (\\w+)\\(\\+(\\d+)\\) est OK
Pattern p = Pattern.compile("(\\w+)\\(\\+(\\d+)\\)");
mais avec le test matches ça passe pas
Sachant que mes chaines de caractère peuvent varier en ce qui concerne la partie avant la première paranthèse:
genre:
ABC (+123) ou A B C (+123) ou AB -C (+123).
je pense qu'il vaut mieux détecter les parenthèses au lieu d'utiliser les regexp, non.??
Merci
Ha ben moi j'avais repéré un mot clé des parenthèses et un chiffre. Maintenant si tout ce que tu veux c'est quelque chose, parenthèse, quelque chose, parenthèse, la regexp se simplifie vachement
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pattern p = Pattern.compile("(.+)\\((.+)\\)"); // regexp (.+)\((.+)\)
Salut,
Regarde du coté des expressions régulières en Java : http://cyberzoide.developpez.com/java/regex/
Une expression du genre : "(\w+) \((\+\d{3})\)" (à vérifier lol)
a+
Partager