Я работаю в парсере, похожем на вики, который создает интервалы для набора токенов разметки. Он работает, но внутри итератора токенов мне часто приходится преобразовывать частичные результаты SpannableStringBuilder
в SpannableString
. Это вызывается довольно часто, поэтому я ищу наиболее эффективное решение для этого и избегаю создания дополнительных объектов.
На данный момент я использую;
SpannableStringBuilder stuff=complex_routine_that_builds_it();
SpannableString result=SpannableString.valueOf(stuff);
Однако этот вызов valueOf
внутренне создает тип SpannableString
с нуля, выполняя toString
и цикл для копирования назначенного spans
.
Как следует из названия SpannableStringBuilder
, я думаю, что, возможно, есть более быстрый способ получить SpannableString
от строителя. Это правда?
SpannableStringBuilder
меня смутило, я привык работать сStringBuffer
потом получаяString
в конце, и не понял, чтоSpannableStringBuilder
также реализуетSpanned
,Charsequence
и т.д... Конструктор пригодится для меня, потому что синтаксический анализатор выполняет множество операций над входящими строками, чтобы удалить разметку и создать множество различных диапазонов: URL, цвета, размеры, ... В основном я переписываю (ужасно) медленныйHtml.fromHtml
- person rupps   schedule 20.04.2014