2012-09-08 4 views
2

je me demandais quelle est la capacité maximale de constructeur de chaîne (ou StringBuffer)stringbuilder longueur maximale

J'ai une variable statique dans mon application Android et il est censé contenir la chaîne log. Je le maximum qu'il tient est 130 lignes et environ 10000 caractères. Je si je joins plus à lui, mais il ne fonctionne tout simplement pas montré (pas d'erreur pas exception)

Je me demandais s'il y a une sorte de limitation placé dans le constructeur de chaîne ou imposée par Android sur la longueur des variables statiques?

Merci beaucoup

+0

Lien utile: http://stackoverflow.com/questions/1179983/how-many-characters-can-a-java-string-have –

+1

Comment essayez-vous de "montrer" cette chaîne - "ne suffit pas show "n'est pas particulièrement utile. – CommonsWare

+0

Pourquoi vous connectez-vous à un StringBuilder? Avez-vous l'intention de vidanger périodiquement ce fichier dans un fichier ou une base de données? (Ou voulez-vous dire "long" au lieu de "log"?) –

Répondre

0

Ce n'est pas une limitation de StringBuilder, mais la limitation du widget sur lequel vous affichez le texte! Par exemple, si vous montrez long texte sur une TextView, alors vous devriez envisager d'utiliser cette ligne:

textView.setFilters(new InputFilter[] { new InputFilter.LengthFilter(
      263000) }) // or any other large number that is enough for you 

Je lis quelque part que ce problème est spécifique à certains périphériques seulement.

+0

Je pense que c'est le problème. Je n'utilise pas de widget mais cela m'a incité à vérifier la configuration du débogage eclipse et apparemment le débogueur ne montre pas plus de 130 lignes à peu près – Snake

+0

Donc tant que vous ne voulez pas le montrer à l'écran, et vous êtes sûr qu'il est ici complètement (en vérifiant la taille de String), donc je pense qu'il n'y a pas de problème du tout. – yrajabi

0

La capacité maximale StringBuilder java est énorme et sur Android est 16mbyte. Le StringBuilder devrait automatiquement augmenter sa capacité lorsque vous y ajoutez, mais vous pouvez l'obliger à allouer de l'espace supplémentaire en utilisant la méthode ensureCapacity(). Donc, en tant que test, vous pouvez le configurer à une plus grande capacité et déterminer si la capacité est le problème ou non.