Beste Weg, um ein SpannableString von einem SpannableStringBuilder

Arbeite ich in einem wiki-wie parser, der schafft Spannweiten, die für eine Reihe von markup-Token. Es funktioniert, aber innerhalb der token-iterator ich Häufig benötigen, zu konvertieren, die Teilergebnisse auf einer SpannableStringBuilder zu einem SpannableString. Dies wird als ziemlich Häufig, so bin ich nach der effizientesten Lösung, um es zu tun, und vermeiden Sie das erstellen von zusätzlichen Objekten.

Im moment bin ich mit;

SpannableStringBuilder stuff=complex_routine_that_builds_it();
SpannableString result=SpannableString.valueOf(stuff);

Jedoch diese valueOf Anruf intern baut eine SpannableString Art von Grund auf, dabei eine toString und einer Schleife kopieren zugewiesen spans.

Als SpannableStringBuilder name schon sagt, ich denke, dass vielleicht, es gibt einen schnelleren Weg, um den SpannableString aus dem generator. Ist es wahr?

  • wenn Sie einige Spannweiten in Ihrem text alles, was Sie brauchen, ist android.text.Überspannt
  • ja, ich verstehe es jetzt, den Namen SpannableStringBuilder verwirrt mich, bin ich verwendet, um arbeiten mit StringBuffer dann ein String am Ende, und habe nicht realisiert, dass SpannableStringBuilder auch implementiert Spanned, Charsequence usw ... Der generator ist praktisch für mich, weil der parser hat eine Menge von Operationen auf eingehende Zeichenfolgen zu entfernen markup und schaffen viele unterschiedliche Spannweiten: URL, Farben, Größen, ... im Grunde bin ich das umschreiben der (sehr) langsam Html.fromHtml
  • tolle Idee, ich weiß nicht warum, aber 95% der Kollegen hier verwenden fromHtml, auch wenn der Eingang nicht html : Sie bauen Sie zuerst künstliche html und rufen Sie dann fromHtml, kann ich nicht mehr finden, blöde Sache
  • yesss und wenn man sich die Html.java source-code, den Sie wollen einfach nur, um zu sterben... er parst den string in ein XML-SaxParser (!), dann nutzt eine 100kb-Bibliothek Tagsoup, mit mehreren regulären Ausdrücken, die das prüfen auf Wohlgeformtheit, XML-Schemata und so weiter.... nur zu unterstützen, nur Fett, Kursiv, überschriften und Farben, etwas, das ich getan habe, mit etwa 150 Zeilen und ist 10 mal schneller!
InformationsquelleAutor rupps | 2014-04-20
Schreibe einen Kommentar