java将byte数组中的中间一部分值取出来怎么做啊?
开始是一个开始标志,然后是编号,接下来表示日期,然后是测量值,接下来是结束位!怎么将编号,日期,测量值取出来啊,它们在一个byte[]数组中!...
开始是一个开始标志,然后是编号,接下来表示日期,然后是测量值,接下来是结束位!怎么将 编号,日期,测量值取出来啊,它们在一个byte []数组中!
展开
展开全部
如果以这种方式存储,那么一定是定长字符串,byte[]是以字节来存储的,你直接取规则的长度就行了啊
如下:
byte[] b = new byte[10];
b[0]='a';
b[1]='b';
b[2]='c';
b[3]='d';
String a = new String(b,0,2);
用你的例子来说:比如你的标志是5位的,编号12位,日期20位,测量值10位
那么应该是
String bz = new String(b,0,5);
String bh = new String(b,5,12);
...............
以此方式解析
如下:
byte[] b = new byte[10];
b[0]='a';
b[1]='b';
b[2]='c';
b[3]='d';
String a = new String(b,0,2);
用你的例子来说:比如你的标志是5位的,编号12位,日期20位,测量值10位
那么应该是
String bz = new String(b,0,5);
String bh = new String(b,5,12);
...............
以此方式解析
展开全部
byte []b=//输入
用
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
然后就可以
int i=dis.readInt();
String s=dis.readUTF();
//等等,这样读取字节中的具体数值。相当于反序列化操作。
用
DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
然后就可以
int i=dis.readInt();
String s=dis.readUTF();
//等等,这样读取字节中的具体数值。相当于反序列化操作。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package com.ldc.test;
/**
*
* @author 愿做无聊听众
*
*/
public class Test {
public static void main(String[] args) {
byte[] b=new byte[6];
b[0]=121;
b[1]=122;
b[2]=123;
b[3]=124;
b[4]=125;
b[5]=126;
//开始范围
int startIndex=2;
//结束范围
int endIndex=4;
for (int i = startIndex; i <= endIndex; i++) {
System.out.println(b[i]);
}
}
}
/**
*
* @author 愿做无聊听众
*
*/
public class Test {
public static void main(String[] args) {
byte[] b=new byte[6];
b[0]=121;
b[1]=122;
b[2]=123;
b[3]=124;
b[4]=125;
b[5]=126;
//开始范围
int startIndex=2;
//结束范围
int endIndex=4;
for (int i = startIndex; i <= endIndex; i++) {
System.out.println(b[i]);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先将byte数组转化为字符串。然后再分割。分割有两种方法。
1、如果信息项之间有分割符的话,用分隔符split字符串。
2、如果每个信息项是定长的话,那就substring字符处。
1、如果信息项之间有分割符的话,用分隔符split字符串。
2、如果每个信息项是定长的话,那就substring字符处。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b[1]b[2]b[3]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询