2012-04-12 40 views
5

Tôi cóVấn đề với tokenize

def testStr = 'a:*b*c*d' 

Tôi muốn nhận

tokens[0]=='a' 
tokens[1]=='b*c*d' 

tôi cố gắng

def tokens = testStr.tokenize(':*') 

nhưng nhận

tokens[0]=='a' 
tokens[1]=='b' 
tokens[2]=='c' 
tokens[3]=='d' 

Làm thế nào tôi có thể làm điều này

+0

Bạn có nghĩa là 'mã thông báo [2] == 'b * c * d'' không? Hay đó là kết quả của chỉ số '1'? –

Trả lời

8

tokenize mất một danh sách các thẻ có thể, do đó, nó tách trên cả :*

Bạn có thể muốn split mà phải mất một biểu thức chính quy để chia trên (và trả về một String[]):

def testStr = 'a:*b*c*d' 

def tokens = testStr.split(/:\*/) 
assert tokens[ 0 ] == 'a' 
assert tokens[ 1 ] == 'b*c*d' 
+0

Nó thực sự là những gì tôi muốn cảm ơn bạn – Karen