У меня есть строки в этом формате: object[i].base.base_x[i]
, и я получаю списки типа List(0,1)
.Я хочу использовать регулярные выражения в scala, чтобы найти совпадение [i]
в данной строке и заменить первое вхождение на 0, а второе на 1. Следовательно, получая что-то вроде object[0].base.base_x[1]
.
. У меня есть следующееcode:
val stringWithoutIndex = "object[i].base.base_x[i]" // basically this string is generated dynamically
val indexReplacePattern = raw"\[i\]".r
val indexValues = List(0,1) // list generated dynamically
if(indexValues.nonEmpty){
indexValues.map(row => {
indexReplacePattern.replaceFirstIn(stringWithoutIndex , "[" + row + "]")
})
else stringWithoutIndex
Так как String является неизменяемым, я не могу обновить stringWithoutIndex
, в результате чего получается вывод, такой как List("object[0].base.base_x[i]", "object[1].base.base_x[i]")
.
Я попытался просмотреть StringBuilder, но я не уверен, как обновитьЭто.Кроме того, есть ли лучший способ сделать это?Также приветствуются предложения, отличные от регулярных выражений.