У меня есть строка с неправильным направлением, я хочу заменить ( с ) и ) ( в то же время, могу ли я сделать это с помощью одного метода замены или использовать цикл?
Например, у меня есть эта строка: вам нужно дополнительное время) или деньги (
Что должно быть так: вам нужно дополнительное время (или деньги)
Yes♂you♂can.
С помощью Regex
вы можете многое сделать.
т.е. мы имеем "()"
:
"()".replace(Regex("[()]")) { when (it.value) { "(" -> ")" ")" -> "(" else -> "" } }
И результат ")("
(я тестировал его под Kotlin 1.2.10).
Это очень читаемо.
Однолинейный путь, более сложный:
"()".replace(Regex("[()]")) { ")("["()".indexOf(it.value[0])].toString() }
Это невозможно прочитать.