我有一个发送数据的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);
如何将hexKey
和hexValue
变成字符串?
结果如下:
4b6579
转换为单词Key
56616c7565
转换为单词Value
编辑:
答案 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)
如果您想将hexKey
和hexValue
转为String
,请执行此操作。
String.valueOf(hexKey);
String.valueOf(hexValue);
而不是Integer.parseInt(key, 16)
,请使用Long.parseLong(key, 16);
答案 2 :(得分:0)
String hex = Integer.toHexString(hexKey);
http://www.codebeach.com/2008/02/convert-hex-string-to-integer-and-back.html