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

 

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

转载于:https://www.cnblogs.com/LIUXUEQIN/p/7683247.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值