下面的方法接收不确定长度的byte[] b。它包含要打印到控制台样式窗口的字符串。我想在第一个换行符处拆分b,以便将该字符包含在第一个数组中。但是,此刻将引发ArrayOutOfBoundsError,因为stringBytesextraBytes声明为零大小。我该如何解决这个问题?

byte[] stringBytes = {};
byte[] extraBytes = {};
int i = 0;

while(i < b.length) {
    stringBytes[i] = b[i];
    if(b[i] == '\n' && i + 1 != b.length) {
        while(i < b.length) {
            extraBytes[i - stringBytes.length] = b[i++];
        }

        break;
    }

    i++;
}

最佳答案

我宁愿从字节中构建一个String并使用String API。

但是,如果确实需要执行字节操作,则可以将stringBytesextraBytes声明为List<Byte>,例如,您可以根据需要添加任意多个值,而无需知道它们的大小。

10-08 18:33