2014-07-04 52 views
0

我有一個字符串,其中有多行作爲內容。這些行由\ n或\ r \ n分隔。我需要更改每行的內容而不觸及分隔符。在Groovy中使用不同的分隔線分割和連接字符串

實施例:

輸入是:aaaaaa \n bbbbbb \r\n cccccc \n ddddd \n eeee \r\n fffff

輸出應該是:aaa11aaa \n bb22bb \r\n cc33cccc \n dd44ddd \n e55eee \r\n ffff66f

因此分裂或標記化的輸入字符串是不可能的,作爲信息,如果它是\ r \ n或\ n在更改後加入令牌時會丟失並且無法恢復。

而不是手動分析和改變輸入字符串的行,是否有一個很好的groovy方法,我錯過了,已經這樣對我?

回答

2

您需要做的僅僅是在兩個步驟:

def input = 'aaaaaa \n bbbbbb \r\n cccccc \n ddddd \n eeee \r\n fffff' 
def result = input.split('\r\n').collect { 
    it.split('\n').collect { doYourReplaceLogic(it) }.join('\n') 
}.join('\r\n') 
相關問題