gpt4 book ai didi

java - 拆分一个字节数组...?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:53 25 4
gpt4 key购买 nike

每次遇到值“-15”时,我都想将它放入一个新的字节数组中……我该怎么做?我想我只是累了,开始变得困惑和兴奋……请帮忙……代码如下:

    fileContent = "S107184CB78120EA52S107184CB78120EA57"; 
int len = fileContent.length();
byte[] data = new byte[len/2];
for (int i = 0; i < len; i += 2)
{
data[i / 2] = (byte) ((Character.digit(fileContent.charAt(i), 16) << 4) + Character.digit(fileContent.charAt(i+1), 16));
}

这将给我以下内容:[-15, 7, 24, 76, -73, -127, 32, -22, 82, -15, 7, 24, 76, -73, -127, 32, -22, 87]

我在这里想要的是将 -15 到下一个 -15(但不包括它)的每个元素都放在一个单独的字节数组中。每次我遇到另一个 -15 时,我都想这样做。我该怎么做?

最佳答案

假设-15的随机出现,你需要一个动态数组,在java中是一个List .收集完所有元素后,您可以轻松地将列表转换为数组。

它看起来像这样:

String fileContent = "S107184CB78120EA52S107184CB78120EA57";
int len = fileContent.length();
List<Byte[]> arrays = new ArrayList<Byte[]>();
List<Byte> data = new ArrayList<Byte>();
for (int i = 0; i < len; i += 2) {
byte b = (byte) ((Character.digit(fileContent.charAt(i), 16) << 4) + Character.digit(fileContent.charAt(i + 1), 16));
if (b == -15) {
arrays.add(data.toArray(new Byte[data.size()]));
data.clear();
}
data.add(b);
}
arrays.add(data.toArray(new Byte[data.size()]));

请注意,这会创建一个 List<Byte[]> , 不是 List<byte[]> .我选择这个是因为我可以使用 .toArray() List的方法| .如果你想要 List<byte[]> ,您需要手动阅读 data在 if block 中。

关于java - 拆分一个字节数组...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com