假设我有一个类似
的字节数组 byte[] bytes = {69, 121, 101, 45, 62, 118, 101, 114, 195, 61, 101, 98};
如何从该字节数组中删除每个第n个字节?如果n = 3,那么结果应该是3的每个倍数(从索引0 => 3,6,912开始,依此类推)。所以45,101,61 .. nth。
我是否需要将System.arraycopy与新的holder数组一起使用?
答案 0 :(得分:1)
首先,您必须努力编写代码并向我们展示您尝试的结果,以便我们为您提供帮助......
该代码将为您提供一个没有第n个元素的新数组:
byte[] bytes = { 69, 121, 101, 45, 62, 118, 101, 114, 127, 61, 101, 98 };
int n = 3;
List<Byte> byteList = new ArrayList<Byte>();
for (int i = 0, j = n; i < bytes.length; i++) {
if (i == j) {
j += n;
continue;
}
byteList.add(bytes[i]);
}
// if you want to return the code to a byte[]
byte[] newByte = new byte[byteList.size()];
for (int i = 0; i < byteList.size(); i++) {
System.out.println( byteList.get(i));
newByte[i] = byteList.get(i);
}
示例输出:
69
121
101
62
118
114
127
101
98