如何比较Java中的字节包装字符串?

问题描述 投票:0回答:2

我的Java应用程序有一个字节打包的String对象,它是通过外部连接从远程数据收集的。字符串组装,如下所示:

byte[] buffer = new byte[20];
/* ... buffer is loaded ... */
int j = 9;
String strVal = "";
for( i=0; i<8; i++ )
{
    strVal += (char)buffer[j++];
}
strVal += '\0';

稍后,我需要验证收到的数据,但是当我尝试以下操作时,它返回false。缓冲区中的数据和strVal的内容(至少我在调试器中可以查看的内容)都是我所期望的。有任何想法吗?

return strVal.equals("STR GOOD"); // evaluates as false when should be true
java string-comparison
2个回答
0
投票

从字节数组的末尾删除'\0'解决了这个问题。


-1
投票

不要追加0,在循环中使用i:

    byte[] buffer = new byte[20];
    /* ... buffer is loaded ... */

    String strVal = "";
    for (int i = 0; i < 8; i++) {
        strVal += (char) buffer[i];
    }
© www.soinside.com 2019 - 2024. All rights reserved.