2014-02-17 21 views
1

我需要保存在具有字符串的字符數的第一個字節位置。然後將每個字符的值存儲在以下位置。將字符串的長度和值保存到一個字節中

String cadena = new String ("Desarrollo"); 
byte valores[] = new byte [cadena.length()]; 
valores = cadena.getBytes(); 
+0

如果字符數大於'byte'的最大值怎麼辦? –

+0

你的問題是什麼?另外,你可能應該使用[String.getBytes(String charsetName)](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#getBytes%28java.lang.String %29)。 –

回答

3

使用java.nio.ByteBuffer。基於某些給定的字符集,獲取String表示形式爲byte[]。首先將String的大小寫爲int,然後編寫byte[]

String cadena = new String("Desarollo"); 
byte[] bytes = cadena.getBytes("UTF-8"); 
ByteBuffer buffer = ByteBuffer.allocate(4 + bytes.length); // 4 being the size of an int in bytes 
buffer.putInt(cadena.length()); 
buffer.put(bytes); 

然後,您可以得到基本byte[]

buffer.array(); 

你應該寫字符串的長度爲int,因爲byte有127最大值,你可能會超越速度非常快。

+0

這是做到這一點的最佳方式。 –

相關問題