如何将十六进制整数转换为字符串

时间:2013-06-20 13:06:16

标签: java

我有一个发送数据的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

3 个答案:

答案 0 :(得分: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,那么我建议您查看以下内容:

Convert a String of Hex into ASCII in Java

来源:

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

答案 1 :(得分:1)

如果您想将hexKeyhexValue转为String,请执行此操作。

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

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

答案 2 :(得分:0)