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

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM