[J2SE] byte陣列轉字串的速度問題

看板java作者 (moonet)時間17年前 (2008/05/16 11:23), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/1
我想要把一個byte陣列轉成16進位表示的字串加上空白 這個byte陣列的來源是檔案 最簡單的做法是: for迴圈跑過byte陣列 字串 += 轉16進位(byte陣列[i]) + " "; 由於String本身是不能動態增加字元的 因此當String越長的時候,作+=消耗的資源很大 (目前猜想是大量的記憶體配置和字串拷貝在消耗資源) 想請問除了分段處理byte陣列之外 是否有內建的函數或是透過內建的方法能夠消耗較少的資源得到字串 主要是陣列轉字串的問題 註:分段處理是指先把原陣列切割為數個小陣列後分別轉為字串再相加 所以也有可能是遞迴的型態 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.112.38

05/16 19:42, , 1F
try StringBuffer
05/16 19:42, 1F

05/16 21:24, , 2F
1.5 以後請改用 StringBuilder
05/16 21:24, 2F

05/17 23:08, , 3F
StringBuffer 與 StringBuilder 其中一個是 thread safe.
05/17 23:08, 3F
文章代碼(AID): #18BMx3ws (java)