java - 无法获取完整长度的消息

标签 java android arrays

我已经实现了从字节数组获取消息的逻辑。

public getInfo(byte[] hi) {

        type = ....

        sequence = ....

        int ack = ....

        int lastbyte = ....;

        int isUTF8byte = .....;

        actual_msg += (char) hi[CHAR1];
        actual_msg += (char) hi[CHAR2];
        actual_msg += (char) hi[CHAR3];
        actual_msg += (char) hi[CHAR4];
        actual_msg += (char) hi[CHAR5];
    }

问题是它只给了我消息的前五个字符。我的意思是,如果字节数组包含 Hello How are you,我只会得到 Hello 的输出。字节数组的第 3 到第 7 个字节(5 个字节)包含字符消息。

我认为消息中剩余字符的逻辑应该位于 for 循环内,因为目前我有逻辑读取前 5 个字符。所有消息组的第 0 到第 2 个字节都是相同的。我只关心第 3 到第 7 个字节。

我该如何实现这个?

最佳答案

如果我正确理解你的问题,你想要类似的东西

public String getMessage(byte[] bytes) {
    StringBuilder message = new StringBuilder(); 
    int index = 0
    while (index < bytes.length) {
        byte[] partOfMessage = Arrays.copyOfRange(bytes, index + 3, index + 7);
        message.append(new String(partOfMessage , StandardCharsets.UTF_8));
        index += 7;
    }
    return message.toString();
}

关于java - 无法获取完整长度的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698698/

相关文章:

php - scandir() 按修改日期排序

java - 在 javadoc 中将长 URL 分成几行

Android CheckedTextView - 动态设置复选标记

android - 保持数据状态 ViewModel

java - 使用 Java 管理 API 调用 [Android]

javascript - 从 JavaScript 中的对象数组中基于 bool 属性删除重复项和过滤

java - 断线器应用

java - 使用二维数组创建成绩计算器

java - 堆栈操作时出现奇怪的错误

python - 用 x 个零和其余的实例化一个矩阵