java将byte数组中的中间一部分值取出来怎么做啊?

开始是一个开始标志,然后是编号,接下来表示日期,然后是测量值,接下来是结束位!怎么将编号,日期,测量值取出来啊,它们在一个byte[]数组中!... 开始是一个开始标志,然后是编号,接下来表示日期,然后是测量值,接下来是结束位!怎么将 编号,日期,测量值取出来啊,它们在一个byte []数组中! 展开
 我来答
kak520
2012-07-03 · TA获得超过687个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:442万
展开全部
如果以这种方式存储,那么一定是定长字符串,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);
...............
以此方式解析
百度网友9308069
2012-07-03 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1922万
展开全部
byte []b=//输入

DataInputStream dis=new DataInputStream(new ByteArrayInputStream(b));
然后就可以
int i=dis.readInt();
String s=dis.readUTF();
//等等,这样读取字节中的具体数值。相当于反序列化操作。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愿做无聊听众6
推荐于2016-02-12 · TA获得超过107个赞
知道小有建树答主
回答量:109
采纳率:100%
帮助的人:67.7万
展开全部
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]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友489295667
2012-07-03 · TA获得超过2367个赞
知道小有建树答主
回答量:1471
采纳率:80%
帮助的人:303万
展开全部
首先将byte数组转化为字符串。然后再分割。分割有两种方法。
1、如果信息项之间有分割符的话,用分隔符split字符串。
2、如果每个信息项是定长的话,那就substring字符处。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
115327884
2012-07-04 · 超过35用户采纳过TA的回答
知道答主
回答量:194
采纳率:0%
帮助的人:103万
展开全部
b[1]b[2]b[3]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式