[英]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.