我有一个类似"(+ x (division (- x 1)))"
的字符串,可以使用split("\\s*[\\(\\),]+\\s*")
输出:
x
sumup
x
1
我需要根据paranthesis和space(它们是说明符)按顺序输出。我的意思是我希望输出:
(
+
x
(
division
(
-
x
1
)
)
)
如何克服?
答案 0 :(得分:0)
这似乎提供了您想要的输出:
s.replaceAll("([\\(\\)\\ ])","\n$1\n").replaceAll("\\s*\n+","\n")
答案 1 :(得分:0)
你可以这样做:
input.replaceAll("\\s+", "").split("(?<=[-+()\\d])|(?=[-+()\\d])");