#java #android #spanned
#java #Android #охватываемый
Вопрос:
Мой эмпирический эксперимент показывает, что если я setSpan(o, start, end)
от начала до конца строки, где end
находится String.length() - 1
, последний символ не покрывается.
Когда я изменил end
на точно String.length()
, вся строка была покрыта и… Я даже не получаю исключение «вне границ».
К сожалению, в документации ничего нет относительно этой конкретной проблемы.
Можете ли вы подтвердить мое наблюдение? (или докажите, что я неправ?)
Ответ №1:
end
является эксклюзивным. 0, 2
, например, является ли все от 0
включительно до 2
эксклюзивным, что является 0
и 1
.
Комментарии:
1. Итак, если я правильно вас понимаю, для покрытия строки, длина которой составляет ровно 4 символа, start = 0 и end = 4?
Ответ №2:
На практике большинство «конечных» индексов будут эксклюзивными. То есть конечный индекс на единицу превышает индекс последнего чего бы то ни было. Если SpannableString используется в Android SDK, то нет, в документации это не указано для метода setSpan
, хотя это указано для других методов, таких как subSequence
.