1

我有一个在客户端和服务器之间来回发送数据的 API。在客户端,有一个解析器获取这些数据并将其放入属性文件中。

我已将服务器端的字符串数据转换为十六进制整数,以避免解析器出现问题,因为我将数据拆分为“;”之类的字符 和 ”_”。因此,如果我的数据包含任何这些字符,它将导致我的解析器出现问题。

server send: SC;4b6579_56616c7565;4b65790a4e65776c696e65_56616c75650a4e65776c696e65;4b65795f556e64657273636f7265_56616c75655f556e64657273636f7265
client received: SC;4b6579_56616c7565;4b65790a4e65776c696e65_56616c75650a4e65776c696e65;4b65795f556e64657273636f7265_56616c75655f556e64657273636f7265

所以一些样本数据将是

String key = "4b6579";
String value = "56616c7565";

int hexKey = Integer.parseInt(key, 16);
int hexValue = Integer.parseInt(value, 16);

我如何把我的hexKeyhexValue变成字符串?

结果应如下所示:

  • 4b6579转换为单词Key
  • 56616c7565转换为单词Value

编辑:

答案在这里找到:Convert a String of Hex into ASCII in Java

4

3 回答 3

2

这里有一些可以帮助的东西:

String hex = "2A"; //The answer is 42  
int intValue = Integer.parseInt(hex, 16);

//this is the line you want
String hex = Integer.toHexString(42);//pass in int here

此外,您可以轻松地在 Java 中使用十六进制数字而不是字符串。

int[] x = {0xA4, 0x21};

编辑:如果最初的问题是要询问如何将十六进制转换为 ASCII,那么我建议您查看以下内容:

在Java中将十六进制字符串转换为ASCII

资料来源:

http://www.codebeach.com/2008/02/convert-hex-string-to-integer-and-back.html

于 2013-06-20T13:13:58.077 回答
1

如果您想将hexKeyandhexValue转到String,只需执行此操作。

String.valueOf(hexKey);
String.valueOf(hexValue);

而不是Integer.parseInt(key, 16),使用Long.parseLong(key, 16);

于 2013-06-20T13:09:28.400 回答
0
String hex = Integer.toHexString(hexKey);

http://www.codebeach.com/2008/02/convert-hex-string-to-integer-and-back.html

于 2013-06-20T13:09:28.260 回答