今天在编写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
-------------------------------------------------(技术的小尾巴)我爱学习,学习使我快乐(刘雪琴)-------------------------------------------