2010-02-04 4 views
22

J'essayais de diviser une expression arithmétique (par exemple "1 + 2 + 10 + 15") sur les signes plus. Cependant, je n'ai pas réussi à écrire l'expression régulière appropriée. Je pensais que cela fonctionnerait:Java - Comment diviser une chaîne sur les signes plus?

expression.split("\\+"); 

mais ce n'est pas le cas. Connaissez-vous la bonne solution?

+1

cela fonctionne parfaitement. pourquoi pensez-vous que non? – Bozho

+4

Si vous souhaitez diviser par un modèle non-regex, vous pouvez utiliser Pattern.quote ("+") pour générer une chaîne correctement échappée. – Philipp

+0

Notez que si vous voulez vous retrouver avec un évaluateur d'expressions à part entière, supprimez les expressions régulières et optez pour un analyseur. –

Répondre

38

C'est le cas. Cependant split(...) retourne un tableau, il ne "transforme" pas votre String en String[]. Essayez ceci:

String expression = "1+2+10+1"; 
String[] tokens = expression.split("\\+"); 
+0

Merci! Ça le fait vraiment. C'est marrant cependant parce que je l'ai essayé encore dans un projet vide et cela a fonctionné. Cependant, il lance une exception dans mon autre projet. Je vais essayer de le regarder. –

+1

Si cela ne fonctionne toujours pas, n'oubliez pas de poster l'exception :) – Rich

+0

Bon pour l'entendre. Je parie qu'il y a quelque chose de différent dans l'autre projet! :) –

5

cette façon

expression.split("[+]"); 
+0

Pourriez-vous élaborer plus sur cette expression régulière "[+]" –

Questions connexes