今天在編寫java程序時發現了byte數組的一個有趣的現象,那就是當時用new String方式將byte數組轉變為String時,byte數組中未被使用的部分('\0')仍然一同被轉換為了String
1 byte[] bytes=new byte[1024]; 2 String s=new String(byte[]); 3 System.out.println(bytes.length()); 4 System.out.println(s.length());
此時雖然byte數組內並沒有數據,但是,bytes的長度和字符串s的長度仍然都為1024,那么有沒有什么辦法可以求出byte數組的實際長度呢?當然有:
1.當byte數組的某一位為'\0'時就表示byte數組該位未被使用
1 public int returnActualLength(byte[] data) { 2 int i = 0; 3 for (; i < data.length; i++) { 4 if (data[i] == '\0') 5 break; 6 } 7 return i; 8 }
2.將byte數組放在vector中,然后求vector的size
-------------------------------------------------(技術的小尾巴)我愛學習,學習使我快樂(劉雪琴)-------------------------------------------