byte数组的实际使用长度

今天在编写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

 

-------------------------------------------------(技术的小尾巴)我爱学习,学习使我快乐(刘雪琴)-------------------------------------------

posted @ 2017-10-17 18:32  现代软件工程17组  阅读(5607)  评论(0编辑  收藏  举报