2011-01-07 53 views
1

嘿,我有一個python背景,並且我在groovy中有分裂函數的問題(但我猜java ......)。具體而言,我想保留我的分裂角色,因爲我不知道在分裂它是什麼時。因此,舉例來說,假設我有以下字符串:分割一個字符串,並保持匹配的分割器在Groovy列表中

"(if (= 2 (- 3 1)) 4 (- 3 1))" 

我想把它分成:

['', '(', 'if ', '(', '= 2 ', '(', '- 3 1', ')', '', ')', ' 4 ', '(', '- 3 1', ')', '', ')', ''] 

(注:我不是想寫一個口齒不清/計劃解析器,這是隻是一個嵌套括號的簡單例子。)

Groovy中有這樣一個簡單的方法嗎?

回答

1

關於基本的JDK,this question (and answers)意味着它可以完成,但不容易(儘管這是主觀的)。

這留下了Groovy JDK。根據Groovy JDK doc,特別是String上的其他方法,我沒有看到任何可以給你提問的東西。

+0

謝謝,@ polygenelubricants瘋狂,瘋狂的回答做我所需要的。謝謝! – 2011-01-07 03:49:41

0

我不認爲你的意思是分裂字符串。從你的例子看起來更像是你試圖解析它,所以你需要的是一個標記器。 有很多可用的解決方案。有關lexical analysis的信息可能是一個很好的開始。

+0

謝謝,但我真的不想接受一個巨大的項目來看(和)。 – 2011-01-08 01:39:47