2010-02-04 16 views
22

Estaba tratando de dividir una expresión aritmética (por ejemplo, "1 + 2 + 10 + 15") en los signos más. Sin embargo, no logré escribir la expresión regular apropiada. Pensé que esto funcionaría:Java - ¿Cómo dividir una cadena en los signos más?

expression.split("\\+"); 

pero no es así. ¿Conoces la solución correcta?

+1

funciona perfectamente. ¿Por qué crees que no? – Bozho

+4

Si desea dividir por un patrón no regex, puede usar Pattern.quote ("+") para generar una cadena escapada correctamente. – Philipp

+0

Tenga en cuenta que si quiere terminar con un evaluador de expresiones completamente desarrollado, abandone las expresiones regulares y busque un analizador. –

Respuesta

38

Sí. Sin embargo, split(...) devuelve una matriz, no "transforma" su String en String[]. Prueba esto:

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

Gracias! Realmente lo hace Aunque es divertido porque lo intenté de nuevo en un proyecto vacío y funcionó. Sin embargo, arroja una excepción en mi otro proyecto. Trataré de investigarlo. –

+1

Si todavía no funciona, no olvide publicar la excepción :) – Rich

+0

Es bueno escucharlo. ¡Apuesto a que hay algo diferente en el otro proyecto! :) –

5

esta manera

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

Podrías por favor elaborar más sobre esa expresión regular "[+]" –

Cuestiones relacionadas