2016-04-24 45 views
2

我有不同的字符串這樣斯卡拉替換鍵列表的字符串/值

" Hello *|USERNAME|*, 

    to activate your account please click here *|ACTIVATION_LINK|* 
" 

的第一個String另一個例子

" Hello, 

    to reset your password please click here *|RESET_URL|* 
" 

我會喜歡這個鍵值的列表

((USERNAME, Nick),(ACTIVATION_URL, http://whateverhost/activation_url)) 

用於第二

((RESET_URL, http://whateverhost/reset_url)) 

我想替換鍵/值列表的字符串,列表可以具有可變長度和字符串鍵的出現可能是多個

我想是這樣的

mapKeyValues.map { x => bodyString.replaceAll(x._1, x._2) } 

但問題是,我得到一個新的列表,其中每行有更換關鍵的一排/價值觀

有沒有辦法做到這一點?

+0

請看看一些模板引擎,[例如旋轉扭曲(https://github.com/playframework/twirl) –

回答

4

可以使用foldLeft做到這一點:

mapKeyValues 
    .foldLeft (bodyString) {case (acc,(key,value))=>acc.replaceAll(key, value)} 
+0

謝謝合作perflectly – agusgambina