Ich habe ein Byte-Array von 151 Bytes, das normalerweise ein Datensatz ist. Der Datensatz muss in eine Oracle-Datenbank eingefügt werden. In 151 Byte Array-Bereich von 0 bis 1 ist eine Record-ID, 2 bis 3 ist eine Referenz-ID, 4 bis 9 ist ein Datumswert. Die folgenden Daten in einem Bytearray sind ein Datumswert. Ich möchte es in String umwandeln
%Vor% gibt es eine Möglichkeit, Byte-Array eines Bereichs ( Arrays.copyOfRange(b,0,5)
) effizient in einen String zu konvertieren.
Gee, wer hätte das erraten können? Jeder, der sich die Mühe machte, sich die API doc , das ist wer.
Wenn Sie für jede Region im Datensatz eine Zeichenfolge erstellen müssen, würde ich eine Teilzeichenfolge vorschlagen:
%Vor%Die tatsächlichen Offsets können je nach String-Codierung unterschiedlich sein.
Der Vorteil dieses Ansatzes ist, dass das Byte-Array nur einmal kopiert wird. Nachfolgende Aufrufe von substring()
erstellen keine Kopien, sondern verweisen einfach auf die erste Kopie mit Offsets. So können Sie einige Speicher- und Array-Kopierzeiten speichern.
Keine der Antworten berücksichtigt, dass Sie nicht ASCII verwenden. Wenn Sie Bytes in eine Zeichenfolge konvertieren, sollten Sie immer den Zeichensatz berücksichtigen.
%Vor%