2012-02-23 34 views

回答

4

這裏有2種方式來做到這一點。

def inital = "IPCM_20120223_xml.tar.gz" 

    def result1 = inital.replaceFirst("IPCM_", "USLF_") 
    def result2 = "USLF${inital.substring(4)}" 

    assert "USLF_20120223_xml.tar.gz" == result1 
    assert "USLF_20120223_xml.tar.gz" == result2 

根據爲您生成初始名稱的內容,您可能需要一個優先於另一個。

如果您知道它始終以「IPCM_」開頭,並且該字符序列永遠不會在任何地方,但位於前面,那麼第一種方法會很好。

如果你知道它總是以4個字母的順序開始,並且你不在乎它是什麼,但是你想將它改爲USLF,那麼第二種方法會很好。

+0

你可以使用' 「USLF $ {initial.drop(4)}」'以及 – 2012-02-23 19:52:20

+0

或' 「USLF $ {初始[4 ..- 1]}」'如果你使用Groovy < 1.8.1 – doelleri 2012-02-23 22:32:13

+0

糟糕,我錯過了'initial.substring(4)'這是等價的。 – doelleri 2012-02-23 22:33:53

0
def inital = "IPCM_20120223_xml.tar.gz" 

def result3 = 'USLF'+inital-'IPCM' 
assert "USLF_20120223_xml.tar.gz" == result3