2013-06-24 82 views
1

我正在寫一個android程序中的小程序我在字符串變量中有一個字節值列表。是這樣的:android java - 將字符串轉換爲字節變量

String src = "255216173005050"; 

現在,我需要做的是從源字符串中提取的字節值,並將其存儲在一個字節變量。 (在上面的源字符串中,我將有5個字節存儲)

爲此,我可以成功讀取源字符串並將字節值分隔3個字符。 (255,216,173,005,050)

問題是我無法將這些字符串轉換爲它們的字節值。

它是什麼我已經做了:

String str = "255"; 
byte b = (byte) Integer.parseInt(str); 

通過運行此,B將是-60! 有沒有 請幫幫我!

+0

可能的重複:http://stackoverflow.com/questions/8652804/how-to-convert-string-to-byte-in-java – verybadalloc

+1

爲什麼?爲什麼要這樣? – Shark

回答

0

當你寫

byte b = (byte) Integer.parseInt(str); 

你會得到一個符號字節。如果你看看你的INT正在使用類似

int i = Integer.parseInt(str); 
System.out.println(i); 
byte b = (byte) i; 

丟棄的,你可能會看到i包含所需的值。

0

這應該工作。然後只需訪問字節數組的各種索引即可獲得各個部分。如果你的文本是一個不正常的字符集 - 然後將字符集傳遞給getBytes()方法。

byte[] bytes = src.getBytes(); 
+1

區域設置會使他變得很難。此外,它不會接近他所要求的...'「255」.getBytes()!= 0xFF' – Shark

+1

保羅,感謝您的答覆..但實際上通過運行您的代碼,它將轉換「2」 ,「5」,「5」來分隔字節值..我的問題是如何將「255」轉換爲字節.. – atari83

0

不要當你想要一個byte使用parseInt;而是嘗試Byte.parseByte。另請注意,byte s的範圍爲-128至127(含)。