如何从字节数组中删除每个第n个字节?

时间:2017-11-19 12:32:20

标签: java arrays

假设我有一个类似

的字节数组
 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数组一起使用?

1 个答案:

答案 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