如何比较 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 += '[=11=]';
稍后,我需要验证接收到的数据,但是当我尝试执行以下操作时,它 returns 错误。缓冲区中的数据和 strVal
的内容(至少我可以在调试器中查看)都是我所期望的。有什么想法吗?
return strVal.equals("STR GOOD"); // evaluates as false when should be true
不要附加 0,在循环中使用 i:
byte[] buffer = new byte[20];
/* ... buffer is loaded ... */
String strVal = "";
for (int i = 0; i < 8; i++) {
strVal += (char) buffer[i];
}
从字节数组末尾删除 '[=10=]'
解决了问题。
我的 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 += '[=11=]';
稍后,我需要验证接收到的数据,但是当我尝试执行以下操作时,它 returns 错误。缓冲区中的数据和 strVal
的内容(至少我可以在调试器中查看)都是我所期望的。有什么想法吗?
return strVal.equals("STR GOOD"); // evaluates as false when should be true
不要附加 0,在循环中使用 i:
byte[] buffer = new byte[20];
/* ... buffer is loaded ... */
String strVal = "";
for (int i = 0; i < 8; i++) {
strVal += (char) buffer[i];
}
从字节数组末尾删除 '[=10=]'
解决了问题。