簡體   English   中英

如何在Java中比較字節填充的字符串?

[英]How to compare byte-packed string in Java?

我的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

從字節數組的末尾刪除'\\0'解決了該問題。

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

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

    String strVal = "";
    for (int i = 0; i < 8; i++) {
        strVal += (char) buffer[i];
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM