[英]extracting Byte by Byte from an ArrayOfByte
我有一个像这样的ArrayOfByte:
byte[] arrayOfByte = new byte[1024]
它内部随机包含1,2,3,4数组。
假设其中有大约100字节的数据,
我的问题是如何从中提取字节数据:它使用Log.d(TAG, "arrayOfByte :"+arrayOfByte);
它将显示arrayOfByte :[B@2b052c60
现在我想分别提取每个字节并display: 1,1,2,1,3,3,3,2,2,1,4,4,4,2,3,3,3...
像这样
更新:谢谢苏米特·辛格,它工作了..
现在假设我们display: [1,1,1,2,3,2,2,2,1,1,1,0,0,0,0,0,0,0]
问题1:如何将这些值放入一些int[] series
问题2:我可以从中删除几个开始元素并将其[2,2,1,1,1,0,0,0,0,0,0,0]
您可以使用Arrays.toString(byte [] a) :
返回指定数组内容的字符串表示形式。 字符串表示形式由数组元素列表组成,并用方括号(“ []”)括起来。 相邻元素由字符“,”(逗号后跟空格)分隔。 元素通过
String.valueOf(byte)
转换为字符串。 如果a为null,则返回“ null”。
Arrays.toString(arrayOfByte)
它将返回字节数组的字符串表示形式,例如1,1,2,1,3,3,3,2,2,1,4,4,4,2,3,3,3
因此
Log.d(TAG, "arrayOfByte :"+ Arrays.toString(arrayOfByte));
为下一个问题更新
回答1:
您可以使用ByteBuffer ,它是NIO的一部分,如下所示:
int[] intArray = ByteBuffer.wrap(arrayOfByte).asIntBuffer().array()
回答2:
对于这个问题,还有很多方法,我建议使用Arrays.copyOfRange 。 它将返回给定范围的新数组。
将指定数组的指定范围复制到新数组中。 范围的起始索引(从)必须介于零和original.length(含)之间。 original [from]处的值放置在副本的初始元素中(除非from == original.length或from == to)。 来自原始数组中后续元素的值将放入副本中的后续元素中。 范围(to)的最终索引(必须大于或等于from)可以大于original.length,在这种情况下,(byte)0放置在副本中索引大于或等于的所有元素中到original.length-从。 返回数组的长度为--from。
byte[] newByteArray = Arrays.copyOfRange(arrayOfByte, startIndex, endIndex);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.