Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,有没有什么好方法可以将字节[]的一部分替换为不同长度的字节[]?_Java - Fatal编程技术网

在java中,有没有什么好方法可以将字节[]的一部分替换为不同长度的字节[]?

在java中,有没有什么好方法可以将字节[]的一部分替换为不同长度的字节[]?,java,Java,我正在使用airlift.joni,一个新的regex框架。 该框架的主要功能是将字符串更改为byte[],然后进行正则表达式匹配和类似的工作。 但由于所有元素都是byte[],所以我不能在字符串中使用replace函数,必须编写自己的替换函数 我可以在字节[]中获取待替换模式的开始和结束,但不知道用新字节[]替换它的正确方法是什么 说我们有一个 byte[] A = new byte[10]; 我想用A替换[2]到[3] byte[] B 其长度不得为2。 有什么好办法吗? 我只想创建一个

我正在使用airlift.joni,一个新的regex框架。 该框架的主要功能是将字符串更改为byte[],然后进行正则表达式匹配和类似的工作。 但由于所有元素都是byte[],所以我不能在字符串中使用replace函数,必须编写自己的替换函数

我可以在字节[]中获取待替换模式的开始和结束,但不知道用新字节[]替换它的正确方法是什么

说我们有一个

byte[] A = new byte[10];
我想用A替换[2]到[3]

byte[] B
其长度不得为2。 有什么好办法吗?
我只想创建一个长度为a.length+B.length-2的新数组,并复制每个对应的字节,但这会使代码太长。

您必须为结果分配一个新数组,然后使用


请澄清您试图执行的操作。添加了更多说明,但我认为这不会有多大帮助…因此您尝试在数组中的某个位置插入
X
元素,并在插入
X
元素后将其余元素向右移动,嗯?是的。有人给了我想要的答案。无论如何谢谢你!为什么要将字符串转换为字节[]?字符串由2个字节的字符组成,因此对于5个字母的单词,您将有10个字节。我认为用这种方法处理字母更难。
byte[] a = /*Allocated and initialized elsewhere*/;
byte[] b = /*Allocated and initialized elsewhere*/;
int replaceStart = 2; // inclusive
int replaceEnd = 4; // exclusive

byte[] c = new byte[a.length - (replaceEnd - replaceStart) + b.length];
System.arraycopy(a, 0, c, 0, replaceStart);
System.arraycopy(b, 0, c, replaceStart, b.length);
System.arraycopy(a, replaceEnd, c, replaceStart + b.length, a.length - replaceEnd);