超强的byte[] 数组帮助类
来源:互联网 发布:足球周刊淘宝店的网址 编辑:程序博客网 时间:2024/05/12 21:56
最近项目中有一个地方需要处理多个byte[],将各byte[] 拼接,再做逐字节的校验,就写了一个类BytesUtil来处理它。
view plaincopy to clipboardprint?
package com.util;
/*******************************************************************************
*
* @author Spirit_demon
* @version 1.0
* @time 2009-12-21
*
*/
public class BytesUtil {
/***************************************************************************
*
* @param src1
* 保存的源byte[]
* @param src2
* 保存的源byte[]
* @return 将src1和src2拼接的byte
*/
public static byte[] addBytes(byte[] src1, byte[] src2) {
byte[] dest = new byte[src1.length + src2.length];
System.arraycopy(src1, 0, dest, 0, src1.length);
System.arraycopy(src2, 0, dest, src1.length, src2.length);
return dest;
}
/***************************************************************************
*
* @param maxlength
* 目标byte的max长度
* @param src
* 每一个byte[]
* @return 目标byte[]数组
*/
public static byte[] addBytes(int maxlength, byte[]... src) {
int length = 0; // 获取每一byte数组的长
int index = 0; // 获取复制到目标数组的起始点,
byte[] dest = new byte[maxlength]; // 目标数组
for (int i = 0; i < src.length; i++) {
length = src[i].length;
System.arraycopy(src[i], 0, dest, index, length); // 将每一个byte[]
// 复制到 目标数组
index = index + length; // 起始位置向后挪动byte[]的length
}
// 目标长度的数组不知道长度,在长度不足的情况下,会向后补0,
// 所以需要对得到的原始数组做一些处理
int count = 0;
for (int i = 0; i < dest.length; i++) {
if (dest[i] == 0) {
count++; // 统计原始数组补0的个数
}
}
byte[] result = new byte[100 - count]; // 生成新数组保存我们需要的值(非补0)
int pos = 0;
for (int i = 0; i < result.length; i++) {
if (dest[i] != 0) { // 判断是非为0,将不为0的值保存
result[pos] = dest[i];
pos++;
}
}
return result;
}
// 测试类
public static void main(String[] args) {
byte[] a = { 1, 2 };
byte[] b = { 3, 4 };
byte[] c = { 8, 9 };
byte[] ax = { 4, 5 };
byte[] bx = { 7, 5 };
byte[] cx = { 4, 3 };
byte[] axx = { 4, 1 };
byte[] bxx = { 6, 9 };
byte[] cxx = { 8, 10 };
byte[] r = BytesUtil.addBytes(100, a, b, c, ax, bx, cx, axx, bxx, cxx);
System.out.println(java.util.Arrays.toString(r));
}
}
本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009/1221/18882.php
- 超强的byte[] 数组帮助类
- C#中string与byte[]的转换帮助类
- C#中string与byte[]的转换帮助类
- C#中string与byte[]的转换帮助类
- C#中string与byte[]的转换帮助类
- C#中string与byte[]的转换帮助类
- C#中string与byte[]的转换帮助类
- Java的byte数组
- byte数组的转化
- iOS byte byte数组的相关操作
- byte[]数组工具类
- 获取文件的byte数组与根据byte数组生成文件的工具类示例
- C#中string与byte[]的转换帮助类-.NET教程,C#语言
- short数组 到 byte 数组的转换
- 16进制字符串和byte数组的转化类
- java类对象与byte数组的互相转换
- C#返回byte[]给dll的方法,寻求帮助
- byte和byte数组
- 各大网站的wap站页面
- Apache与Tomcat的区别
- iPhone被评为用户最满意智能手机
- [网络基础] 如何创建局域网问题解决方案--总结出品^
- 自动化测试工程师职位(内部推荐)
- 超强的byte[] 数组帮助类
- c++primer 练习题模板
- 代码
- 项目需求该怎么做(二)
- 启动tomcat和myeclipse后,http://localhost:8080无法访问
- android移动平台——移动SNS(二):注册登录
- 整数表示---整型数据类型
- android2.1取得通讯录联系人名字和电话号码
- 今天新开通的