SpannableString Java Android Development

Ну короче я хочу покрасить пару скобок с помощью SpannableString, но столкнулся с одной проблемой, надо покрасить только скобки, не затрагивая то, что внутри, и вокруг скобок. А если есть лишние скобки, чтоб они не окрашивались. Вообщем я прикреплю набросок, чтобы было лучше понять меня.Дополнение


Ответы (1 шт):

Автор решения: Circassian

На котлине можно так например

fun highlightBrackets(str: String) = buildSpannedString {
    var isBracketOpened = false
    str.forEach { ch ->
        when {
            ch == '(' -> {
                isBracketOpened = true
                appendBracket(ch)
            }
            ch == ')' && isBracketOpened -> {
                isBracketOpened = false
                appendBracket(ch)
            }
            else -> append(ch)
        }
    }
}

fun SpannableStringBuilder.appendBracket(ch: Char) {
    append(SpannableString(ch.toString()).apply {
        setSpan(ForegroundColorSpan(Color.RED), 0, this.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    })
}
→ Ссылка