2015-04-21 6 views
5

Ich habe ein Array von Bytes, bestehend aus 1024 Elementen. Ich möchte dies in verschiedene private String-Mitglieder zerlegen (z. B. die ersten 9 Bytes für den Namen, die nächsten 12 Bytes für die Benutzer-ID usw.).Wie würde ich die ersten "n" Elemente eines Byte-Arrays nehmen und sie direkt in einen String konvertieren?

Ohne das gesamte Byte-Array in einen String zu verwandeln und dann eine Teilstring-Methode zu verwenden, gibt es irgendeine Möglichkeit, einen Bereich von Bytes im Array direkt in ein privates Mitglied für meine Klasse zu verwandeln.

z.

myObject.name = byteArr[0-9]; 
myObject.userId = byteArr[10-21]; 
+3

das Lesen der Dokumente kann manchmal sehr hilfreich sein -.-. http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#String%28byte[],%20int,%20int%29 – Paul

Antwort

8

Verwendung:

String myField = new String(myArray, start, end); 

wo start würde 0 sein, wenn Sie von Anfang an

starten wollen
6

Verwenden String Konstruktor:

public String(byte bytes[], int offset, int length, Charset charset) 

Beispiel:

myObject.name = new String(byteArr, 0, 10, Charset.defaultCharset()) 

Denken Sie daran, dass Bytes und Zeichen unterschiedliche Typen in Java sind, und Sie sollten die korrekte Konvertierung mithilfe der Klasse Charset angeben, um unerwartete Ergebnisse zu vermeiden.