2013-06-02 53 views
1

我試圖追加到一個字符串使用Stringbuilder。不幸的是,在一定數量的角色之後,Strinbuilder會再次追加。Android的StringBuilder不能追加

我想這個簡單的代碼:

StringBuilder sb = new StringBuilder(); 
    for(int i = 0;i<=9999;i++){ 
     sb.append("c"); 
    } 

當我登錄時使用的logcat和計數已添加了個「C」(應該是9999),其僅4069!

我在Android模擬器中使用了Eclipse。據我所知,沒有相關的異常拋出。

在此先感謝!

+0

你在logcat輸出或使用.Length()計數它們嗎? –

+0

你不顯示你如何使用logcat,但如果你只是打印到日誌sb.length() –

+0

嘗試'System.out.println(sb.toString()。length());' – mjosh

回答

0

logcat消息的最大長度不到4k(4096字節 - 一些開銷),所以你似乎在記錄cs並從截斷的logcat消息中計數它們。

#define LOGGER_ENTRY_MAX_LEN  (4*1024) 
#define LOGGER_ENTRY_MAX_PAYLOAD (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry)) 
+0

你'對了!非常愚蠢的我:( 謝謝你的答案! –

+0

只需要清楚,System.out.println通常被重定向到logcat(Log.i()),這就是爲什麼System.out屬於這些限制。 – Ryan