嘿,我有一个python背景,我在groovy中有一些split函数的问题(但我想java ...)。具体来说,我想保留我的分裂角色,因为我不知道在分裂它是什么时。例如,假设我有以下字符串:
"(if (= 2 (- 3 1)) 4 (- 3 1))"
我想把它分成:
['', '(', 'if ', '(', '= 2 ', '(', '- 3 1', ')', '', ')', ' 4 ', '(', '- 3 1', ')', '', ')', '']
(注意:我不是要编写一个lisp / scheme解析器,这只是一个嵌套括号的简单示例。)
在Groovy中有一种简单的方法吗?
答案 0 :(得分:1)
关于基本的JDK,this question (and answers)暗示它可以完成,但不容易(虽然这是主观的)。
离开了Groovy JDK。根据{{3}},特别是String上的其他方法,我没有看到任何能够提供你所要求的东西。
答案 1 :(得分:0)
我认为你的意思并不是要分裂字符串。从您的示例看,它看起来更像是您尝试解析它所以您需要的是 tokenizer 。 有很多解决方案可供选择。关于lexical analysis的信息可能是一个很好的起点。