2014-08-28 192 views
0

我在我的Java代碼中有一個像這樣的字符串。Java字符串到字節

String my = "16 12 12 -119 102 105 -110 52 -89 80 -122 -68 114 20 -92 -28 -121 38 113 61" 

用「」分隔的值是整數(您可以看到它)。

我可以將整數轉換爲int數組,但我需要將int值轉換爲byte數組。每個整數表示的值是一個字節值。

PS。

String aa[] = U.split(" "); 
byte bb[] = new byte[aa.length]; 

for(int q=0;q<aa.length;q++){ 
    int v = Integer.parseInt(aa[q]); 

    bb[q] = ???????????????????--the code I need to convert the int to a byte 

} 
+7

那麼你如何將值轉換爲「int」數組?有機會,你可以跳過,並將它們直接轉換爲字節。請到目前爲止顯示你的代碼。 (如果你需要將int []轉換爲byte [],你可以創建一個新的數組,然後依次用'for'循環轉換每個數值。 – 2014-08-28 05:56:46

+0

請發佈您迄今爲止的代碼。 – wdosanjos 2014-08-28 05:59:28

+0

String string_as_int [] = U.split(「」); 使用for循環和Integer.parseInt(); 我將它們轉換爲一個int數組... – Sniper 2014-08-28 05:59:29

回答

1

你應該能夠做到:

String[] parts = my.split(" "); 
byte[] bytes = new byte[parts.length]; 

for(int i = 0; i < parts.length; i++) { 
    bytes[i] = Byte.parseByte(parts[i]); 
} 

System.out.println(Arrays.toString(bytes)); 

[16,12,12,-119,102,105,-110,52 -89,80,-122, -68,114,20,-92,-28,-121,38,113,61]

一定要查看該API爲Byte類,特別是Byte.parseByte()

+0

只是爲了確認。 – Sniper 2014-08-28 06:10:24

+0

Thank You..bro .... – Sniper 2014-08-28 06:18:01

+0

沒有問題,家園。請記住每個基本類型都有一個關聯的類,其中包含有用的實用程序(「Byte」,「Short」,「Character」等)。另外,Guava庫提供了幾個更有用的[原始工具](https://code.google.com/p/guava-libraries/wiki/PrimitivesExplained)。 – dimo414 2014-08-28 06:20:35

0

您可以分割字符串,並分析每個單獨的字符串令牌Byte: -

String my = "16 12 12 -119 102 105 -110 52 -89 80 -122 -68 114 20 -92 -28 -121 38 113 61"; 
String [] ints = my.split (" "); 
byte[] bArr=new byte[ints.length]; 

for(int i=0;i<ints.length;i++){ 

    bArr[i]=Byte.parseByte(ints[i]); 
    System.out.println(bArr[i]); 
} 
1

編輯:你顯然可以做我的大部分答案,除了一行。只需更換這行:

int v = Integer.parseInt(aa[q]); 

本(有沒有必要讓一個int第一,所以就跳過它,向右走的byte):

bb[q] = Byte.parseByte(aa[q]); 

或者你可以只鑄int您創建一個byte,像這樣:

int v = Integer.parseInt(aa[q]); 
bb[q] = (byte)v; 

你要做的第一件事是轉換該單個StringString秒的陣列通過使用String#split()方法,是這樣的:

String[] strArray = my.split(" "); // split by the spaces 

然後,創建一個字節數組,這將是相同長度的串陣列:

byte[] byteArray = new byte[strArray.length]; 

然後在字符串數組迭代和String陣列的每個元素添加到byte陣列。每次添加了一些時間,你必須把它從String解析爲byte,使用Byte#parseByte(String s)方法:

for (int i = 0; i < byteArray.length; i++) { 
    byteArray[i] = Byte.parseByte(strArray[i]); 
} 

然後,你應該有你的字節數組。