2014-04-16 41 views
0

的第一個角色,我有像這樣的字符串:ABC和位置:Grails的去除串

params.search = abc def 123 
字符串,名

高清123

params.search.split(" ").each{ key-> 
    ilike ('name', key[0].toString()) 
    ilike ('position', .... 
} 

我的問題是,我該怎麼去除字符串名稱(字符串的第一個索引),然後設置字符串的休息位置ILIKE()

+1

@what是您所需的輸出把它的問題,請添加信息...問題不是那麼清楚 – danielad

回答

2

我想你正在尋找nameabcpositiondef 123

def string = "abc def 123" 
def splitStr = string.split() 

def name = splitStr[0] 
def position = splitStr[1..-1].join(/ /) 

assert name == 'abc' 
assert position == 'def 123' 

UPDATE
我寧願用@Tim's approach因爲上面的方法很冗長。
使用split(regex, limit)和多個賦值使得實現更加靈活和更智能。

limit參數控制應用模式爲 的次數,因此會影響結果數組的長度。

That answer是問題的最佳答案,應該接受。 :)

2

你也可以使用多個任務,並從split限制結果:

def str = "abc def 123" 
def (name,position) = str.split(' ', 2) 

assert name == 'abc' 
assert position == 'def 123' 
+0

哇。這應該是被接受的答案。我記得使用這種格式,但在發帖時半夜忘了。謝了哥們。 +1 – dmahapatro