我正在处理套接字连接。我在客户端工作。我已经通过这个讨论Socket pass value as Hex。我需要在服务器上发送字符串,例如(0x01 是一个十六进制值和一个字符串“Ravi”),他们期望像 1 72 61 76 69 这样的十六进制值。我尝试将字符串 Ravi 转换为十六进制值作为字符串并附加“1 " 并尝试转换为字节数组。我收到 StringIndexOutOfBound 异常的异常。
更新:
`public static byte[] hexStringToByteArray(String s) { int len = s.length(); 字节[] 数据 = 新字节[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 2) + Character.digit (s.charAt(i+1), 16)); } 返回数据;}
public String toHex(String arg) {
return String.format("%x", new BigInteger(arg.getBytes()));
}`
我使用这两种方法将 1Ravi 字符串转换为字节数组,但我得到了异常 hexstringtobytearray 方法。