Java 将包含“0x00”的字节数组替换为“0x30”`
我正在尝试将包含Java 将包含“0x00”的字节数组替换为“0x30”`,java,android,byte,bytearray,android-bluetooth,Java,Android,Byte,Bytearray,Android Bluetooth,我正在尝试将包含0x00的字节数组替换为0x30 1) 如果字节数组为字符串形式。(尽可能) 2) 如果字节数组是字节形式。(有问题) 上述方法要求首先将字节转换为字符串形式,然后将所有出现的0x00替换为0x30,然后将结果字符串转换回字节。 这似乎有点不合标准。然而,尽管如此,解决方案还是没有起作用。我不确定是否理解您的问题,但这应该可以修复您的第二个列表: byte[] bytes = new byte[] { (byte) 0x7d, (byte) 0x44,
0x00
的字节数组替换为0x30
1) 如果字节数组为字符串形式。(尽可能)
2) 如果字节数组是字节
形式。(有问题)
上述方法要求首先将字节转换为字符串形式,然后将所有出现的0x00
替换为0x30
,然后将结果字符串转换回字节。
这似乎有点不合标准。然而,尽管如此,解决方案还是没有起作用。我不确定是否理解您的问题,但这应该可以修复您的第二个列表:
byte[] bytes = new byte[] { (byte) 0x7d, (byte) 0x44,
(byte)0x2d, (byte)0x05, (byte) 0x0e, (byte)0x01,
(byte)0x11, (byte)0x10, (byte)0x2f, (byte) 0x03,
(byte)0x00, (byte)0x48};
for (int i=0; i<bytes.length; i++) {
Byte b = bytes[i];
if (b == 0x00) bytes[i] = 0x30;
}
try
{
String myString = new String(bytes, "US-ASCII").trim();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
byte[]bytes=新字节[]{(字节)0x7d,(字节)0x44,
(字节)0x2d,(字节)0x05,(字节)0x0e,(字节)0x01,
(字节)0x11,(字节)0x10,(字节)0x2f,(字节)0x03,
(字节)0x00,(字节)0x48};
对于(int i=0;i
byte[] bytes = new byte[] { (byte) 0x7d, (byte) 0x44,
(byte)0x2d, (byte)0x05, (byte) 0x0e, (byte)0x01,
(byte)0x11, (byte)0x10, (byte)0x2f, (byte) 0x03,
(byte)0x00, (byte)0x48};
try
{
String myString = new String(bytes, "US-ASCII").trim();
if(myString.contains("0x00"))
{
myString = myString.replace("0x00", "0x30");
bytes = myString.getBytes();
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
byte[] bytes = new byte[] { (byte) 0x7d, (byte) 0x44,
(byte)0x2d, (byte)0x05, (byte) 0x0e, (byte)0x01,
(byte)0x11, (byte)0x10, (byte)0x2f, (byte) 0x03,
(byte)0x00, (byte)0x48};
for (int i=0; i<bytes.length; i++) {
Byte b = bytes[i];
if (b == 0x00) bytes[i] = 0x30;
}
try
{
String myString = new String(bytes, "US-ASCII").trim();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}