2012-09-08 230 views
2

我想知道什麼是字符串生成器(或StringBuffer的)StringBuilder的最大長度

最大容量爲我在Android應用程序有一個靜態變量,它應該保存日誌的字符串。我最大的是130線和約10000字符。我如果追加更多,但它不顯示(沒有錯誤沒有例外)

所以我想知道是否有某種限制放置在字符串生成器或強加給android靜態變量長度?

非常感謝您

+0

有用的鏈接:http://stackoverflow.com/questions/1179983/how-many-characters-can-a-java-string-have –

+1

你怎麼試圖「顯示」這個字符串 - 「只是不顯示「不是特別有用。 – CommonsWare

+0

爲什麼要記錄到StringBuilder?您是否計劃定期將其清除到文件或數據庫? (或者你的意思是「長」而不是「日誌」?) –

回答

0

這不是對StringBuilder的限制,而是限制了你正在顯示文本的小部件!例如,如果你是顯示在一個TextView長文本,那麼你應該考慮使用這一行:

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

我讀的地方,這個問題是特定於某些設備。

+0

我認爲這是問題所在。我沒有使用小部件,但那促使我檢查eclipse調試配置,並且顯然調試器不會顯示超過130行的大致 – Snake

+0

因此,只要您不想在屏幕上顯示它,並且您確定它在這裏完全是(通過檢查String的大小),所以我認爲完全沒有問題。 – yrajabi

0

的Java的StringBuilder的最大容量是巨大的,在Android這是16兆字節。

當你附加到它時,StringBuilder應該自動增加它的容量,但你可以強制它使用ensureCapacity()方法分配額外的空間。

myStringBuilder.ensureCapacity(int minimumCapacity) 

所以,作爲一個測試,你可以將其設置爲一個更大的容量和確定容量問題或沒有。