2015-04-20 41 views
4

也許我是粘在十六進制字符串?我不知道。 我的代碼:十六進制到Android(Java)中的字符串?

final byte[] txValue = intent.getByteArrayExtra(UartService.EXTRA_DATA); 

txValue應該是字節嗎?

調試:

Log.d("p1", ""+txValue.toString()); 

然後告訴我那些:

[[email protected] 
[[email protected] 

我不知道如何解決它?來人幫幫我 ?

+0

嘗試Arrays.toString(txValue)? (但是,這不會打印在十六進制,所以忽略此評論!) – BretC

+0

[轉換字節數組到字符串](http://stackoverflow.com/q/1536054/2764279) –

回答

1

你應該使用public String(byte[] bytes)構造:

由指定使用平臺的默認字符集的字節數組解碼構造一個新的String。新字符串的長度是字符集的函數,因此可能不等於字節數組的長度。

String s = new String(txValue); 

,然後打印s,它包含了你想要的東西。

打印txValuetxValue.toString()將以字節格式打印它。

+0

我以前做過,但它不工作。仍然顯示[B @ 367d19dc,我發現數據可能是這樣的:b11011011,我必須找出方法可以顯示正確的數據從最終字節[] txValue = intent.getByteArrayExtra(UartService.EXTRA_DATA); –

0

我找到方法: final byte [] txValue = intent.getByteArrayExtra(UartService.EXTRA_DATA);

最終詮釋GasValue =((txValue [0] < < 8)|(txValue [1] & 0xff的))& 0xFFFF的;

String text = Integer.toString(GasValue);

Log.d(「p1」,「」+ text);

OK

0

您應該使用Arrays.toString(txValue)

這是我如何使用我的代碼

final byte[] txValue = intent.getByteArrayExtra(UartService.EXTRA_DATA); 
    txtResult.setText(Arrays.toString(txValue)); 

結果就像下面 [27,0,1,13, 13,4,5]

相關問題