2013-06-20 68 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

相關問題