2013-06-20 168 views
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

+0

通常最好使用常用的代替自定义实现的东西。例如。您可以使用序列化到BASE64的JSON来消除(反)序列化和不同的编码问题。你也可以提供服务器代码,将服务器数据转换为你发送的内容。 – yatul

+0

所以你试图将特定值“4b6579”转换为特定字符串“key”?在这种情况下,您应该将该值映射到字符串。你可以使用一个简单的switch语句。 –

+0

@GilbertLeBlanc这是你的链接的副本,谢谢。这应该解决我的问题。 – JREN

回答

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

+0

这与其他人一样。它返回KEY:4b6579而不是KEY:key – JREN

+0

查看我的编辑。我相信这就是你要找的。 –

+0

是的。我已经添加了这个问题的答案,但无论如何感谢! – JREN

1

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

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

代替Integer.parseInt(key, 16),使用Long.parseLong(key, 16);

+0

为hexKey这给了我4941177这不是正确的值,对于hexValue它会引发NumberFormatException。所以这是行不通的。 – JREN

+0

那么,你的'Integer.parseInt'会引发一个异常。 – darijan

+0

事实上,String.valueOf(hexKey)不会将我的hexKey转换为单词Key,而是转换为4941177 – JREN

0
+0

这个返回KEY:4b6579对我来说,这只是将hexKey的内容从int转换为String。所以这不起作用 – JREN

+0

我刚刚回答了这个问题: “如何将十六进制整数转换为字符串”没有十六进制整数,只有一个以十六进制格式表示的整数。 –

+0

但我的问题是如何将十六进制值转换为字符串?我认为这个问题已经很清楚地阐述了。 – JREN

相关问题