Bonjour,
J'ai une expression de type String du genre : "a && b || c"
et je voudrais en tirer une listes des opérateurs && et || utilisés.
exemple
"a && b || c && d" --> resultat = ["&&"; "||";"&&"]
Merci
Version imprimable
Bonjour,
J'ai une expression de type String du genre : "a && b || c"
et je voudrais en tirer une listes des opérateurs && et || utilisés.
exemple
"a && b || c && d" --> resultat = ["&&"; "||";"&&"]
Merci
String : indexOf(String str) renvoie l'indice où a lieu la première occurrence de str à qui tu peux donner la valeur "&&"
Si cette séquence n'existe pas, la valeur -1 est retournée
Il doit surement y avoir d'autres façons de faire...
Une petite lecture dans les API Java classe String ne font pas de mal :-)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public static void main(String[] args) { Vector<String> res = new Vector<String>(); String s = "a && b || c && d"; Pattern pattern = Pattern.compile("&&|\\|\\|"); Matcher matcher = pattern.matcher(s); int i=0; while(matcher.find()){ int start = matcher.start(); int end = matcher.end(); res.add(s.subSequence(start, end).toString()); i=end; } //affichage du resultat for (int j = 0; j < res.size(); j++) { String s1 = res.elementAt(j); System.out.println("<"+s1+">"); } }
Merci pour avoir fournit un exercice sur les regex ;)
Essaye c'est très sympa.
La solution de ninow me parraissant trop longue au niveau du code, j'ai essayé de faire un poil plus court :
Le tutoriel qui m'a servit à la faire se trouve ici :Code:
1
2
3
4
5
6
7 public static void main (String... args){ String quelBazar = "aa && bb || cc && dd"; String resultat = quelBazar.replaceAll("[^&|]+","x").replaceAll("^x", ""); String[] arrésultat = resultat.split("x"); for (String display : arrésultat) System.out.println(display); }
http://cyberzoide.developpez.com/java/regex/