byte Array Mindestlänge

matthias(:

Mitglied
Hallo,

wie geht dass, oder geht dass überhaupt:
Ich habe einen String und möchte diesen in einem Bytearray mit genau der Länge 64 also
Code:
byte [] b = new byte[64]
speichern.

Ich möchte also den String z.b. Matthias drinnen stehen haben und den rest bis auf die Größe 64 aufgefüllt haben.. ???:L
 

G@st

Mitglied
Was möchtest du denn genau mit diesem Array anstellen? Zuallererst geht das leider nicht, was du da vorhast. Für den Namen "Matthias" brauchst du entweder ein Stringarray, oder, wenn du die Buchstaben einzeln speichern willst, ein Char-Array (Character).

Zweite Frage: Mit was möchtest du den Rest ausfüllen?^^
 
G

Gast2

Gast
Java:
String matthias = "Matthias";

byte[] bytes = new byte[64];
System.arraycopy(matthias.getBytes(), 0, bytes, 0, matthias.getBytes().length);

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

G@st

Mitglied
Okay, wie kann ich denn den String dann in nem ByteArray hinterlegen? Ich mein, wenn ichs so mache:

Java:
private void gibStringAnByteArray() {
		byte [] b = new byte[64];
		String s = new String("Matthias");
		b[0] = s;
		
	}

Krieg ich für b[0] = s; sofort nen Compilerfehler^^
 

AlexSpritze

Bekanntes Mitglied
Okay, wie kann ich denn den String dann in nem ByteArray hinterlegen? Ich mein, wenn ichs so mache:

Java:
private void gibStringAnByteArray() {
		byte [] b = new byte[64];
		String s = new String("Matthias");
		b[0] = s;
		
	}

Krieg ich für b[0] = s; sofort nen Compilerfehler^^

Weil
Code:
s
kein
Code:
byte
ist. Sondern du willst da einem Element in einem Byte-Array ein Objekt vom Type String zuweisen... Macht wenig Sinn, musst du zugeben.

Java:
..
int i = 0;
for(byte _b : "Matthias".getBytes()) {
  b[i++] = _b;}
 
N

nillehammer

Gast
Ich würd gern nochmal auf G@sts Post von heute 14:34 hinweisen. Man kann natürlich die Bytes eines Strings extrahieren und in einem Byte-Array speichern. Man sollte sich aber vor Fallstricken beim Encoding hüten. Es ist nämlich keineswegs so dass ein Byte einem Zeichen im String entspricht. Jenach Encoding werden Zeichen nämlich in einem, zwei oder sogar vier Bytes gespeichert. Dann kommt bei einer Ausgabe gerade von Sonderzeichen (wozu auch bspw. das ß gehört) Grütze raus. Vielleicht solltest Du also den Algorithmus nochmal überdenken.
 

Gossi

Bekanntes Mitglied
...Dann kommt bei einer Ausgabe gerade von Sonderzeichen....

Deswegen würde ich dir (Matthias) auch dazu raten, falls dies Möglich ist, ein char[] zu nehmen.

Eine Umwandlung sieht dann z.B. so aus:
Java:
String s = "matthias(:";
char[] charArray = s.toCharArray();
//oder halt:
char[] charArray = new char[64];
int i = 0;
for(char c : s.toCharArray()) {
     charArray[i++] = c;
}
 
H

hüteüberhüte

Gast
Sind matthias:) und G@st jetzt dieselbe Person? Was soll das.

Alternativ kann man sich auch überlegen, in welchen Format Zeichen/Zeichenketten intern verwaltet werden (in Unicode). Dann geht auch so etwas:

Java:
byte[] ba = new byte[64]; // hier Vorsicht bei der Länge
String s = "Matthias";

for (int i = 0; i < s.length(); i++) {
    ba[i] = (byte) s.charAt(i); // hier Vorsicht beim Konvertieren/Casten
}

for (int i = 0; i < ba.length; i++) {
    System.out.print((char) ba[i]);
}
 
H

hüteüberhüte

Gast
Ok, sonst auch mal in die API von String schauen:
A String represents a string in the UTF-16 format in which supplementary characters are represented by surrogate pairs (see the section Unicode Character Representations in the Character class for more information). Index values refer to char code units, so a supplementary character uses two positions in a String.
String (Java Platform SE 6)

Dabei sind auch die einzelnen Konstruktoren interessant:
String (Java Platform SE 6)[],%20java.lang.String%29
Constructs a new String by decoding the specified array of bytes using the specified charset. The length of the new String is a function of the charset, and hence may not be equal to the length of the byte array.

The behavior of this constructor when the given bytes are not valid in the given charset is unspecified. The CharsetDecoder class should be used when more control over the decoding process is required.

...und halt auch die getBytes(), getBytes(Charset charset) und charAt(int index) Methoden. Es ist immer Sache des jeweiligen Formats...
 
H

hüteüberhüte

Gast
char-Arrays sind prinzipiell nichts anderes als byte-Arrays mit doppelter Länge, denn ein char benötigt 16 Bytes. Es ist also nicht falsch, an dieser Stelle auch von Bytes zu sprechen.

BTT: Trotzdem kommt es natürlich immer auf die Darstellungs- bzw. Repräsentationsform an. Wenn ein Zeichen "plötzlich" durch ein byte dargestellt werden soll, ist das eine "Encodierung" in ein anderes Format - und umgekehrt genauso.

Dazu gibts aber die ganzen Methoden u.A. von String: z.B. getBytes(), getBytes(Charset charset), getBytes(String charsetName) oder Charset#encode, Charset#decode usw.

BTT 2: Ein byte-Array hat theoretisch keine Mindest- und keine Höchstlänge. Es gibt bspw. auch Arrays der Länge 0. Welche Länge ein Array höchstens haben darf, muss man jetzt wieder in der API nachlesen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
N Datentypen Image zu Byte-Array Java Basics - Anfänger-Themen 4
D Methoden int to byte array und zurück? Java Basics - Anfänger-Themen 5
F Byte Array wachsen lassen Java Basics - Anfänger-Themen 5
F Teil eines Byte Array an eine Methode übergeben Java Basics - Anfänger-Themen 5
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
M Byte Array und Co. Java Basics - Anfänger-Themen 12
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
H Variablen 32bit Zählwert als Byte-Array Java Basics - Anfänger-Themen 9
D [jni] jbytearray <-> byte array Java Basics - Anfänger-Themen 8
P byte Array aus ImageIcon Java Basics - Anfänger-Themen 10
V Jar-Datei von Byte-Array oder Stream laden? Java Basics - Anfänger-Themen 9
H Datentypen Byte-Array RSA Java Basics - Anfänger-Themen 9
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
M Byte Array: Werte größer 127? Java Basics - Anfänger-Themen 11
H Datentypen Byte-Array aus Stream lesen Java Basics - Anfänger-Themen 3
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S Alle Datentypen in byte Array und zurückwandeln Java Basics - Anfänger-Themen 2
J Byte-Array als Hex-Datei speichern? Java Basics - Anfänger-Themen 9
J String array to byte array Java Basics - Anfänger-Themen 8
G SHA (byte array) per modulo hashen Java Basics - Anfänger-Themen 6
K Byte-Array als Zeichenfolge ausgeben Java Basics - Anfänger-Themen 3
G byte array in integer konvertieren Java Basics - Anfänger-Themen 15
mwildam Byte array oder String Java Basics - Anfänger-Themen 4
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
U byte array in datei 'dumpen' / speichern Java Basics - Anfänger-Themen 2
G Byte Array inkrementieren Java Basics - Anfänger-Themen 17
H String in Byte Array wandeln Java Basics - Anfänger-Themen 25
H von und in byte array wandeln Java Basics - Anfänger-Themen 8
D Byte-Array zu Hex-String umwandeln Java Basics - Anfänger-Themen 3
G Konvertierung Byte Array Java Basics - Anfänger-Themen 4
tobiasbeil Von Datei byte für byte lesen und in ein Array einfügen. Java Basics - Anfänger-Themen 11
G Byte-Array Infos speichern Java Basics - Anfänger-Themen 14
F char to byte array Java Basics - Anfänger-Themen 8
S byte-array bitweise auslesen Java Basics - Anfänger-Themen 14
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
T XML Parsen und Inhalt in ein Byte Array schreiben Java Basics - Anfänger-Themen 3
C Byte-Array mit Dateiinhalt füllen Java Basics - Anfänger-Themen 7
G 4-stelliges-Byte-Array in Integer umwandeln geht das? Java Basics - Anfänger-Themen 10
C Probleme mit Byte konvertieren nach int Java Basics - Anfänger-Themen 10
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
P int zu byte Java Basics - Anfänger-Themen 8
M Java Klasse Byte Java Basics - Anfänger-Themen 10
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
O Input/Output Ein (negatives) Byte über PrintWriter hinausschreiben Java Basics - Anfänger-Themen 3
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
J byte - Ausgabe Java Basics - Anfänger-Themen 2
S byte to float Java Basics - Anfänger-Themen 4
J Byte Folge erkennen Java Basics - Anfänger-Themen 5
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
Y File to byte[] and byte[] to sysout Java Basics - Anfänger-Themen 3
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
P String in byte konvertieren, wie? Java Basics - Anfänger-Themen 4
T Erste Schritte Byte Java Basics - Anfänger-Themen 3
R byte[] zu String und Ausgabe Java Basics - Anfänger-Themen 2
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
X Datentypen String in byte[] Java Basics - Anfänger-Themen 29
H Variablen string nach byte Java Basics - Anfänger-Themen 12
B Frage zur Effizienz von read und read(byte[]) Java Basics - Anfänger-Themen 23
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
S Von byte[] nach String zurueck nach byte[]. Arrays sind nicht identisch :( Java Basics - Anfänger-Themen 6
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
V unsigned byte? Java Basics - Anfänger-Themen 27
U short[] nach byte[] Java Basics - Anfänger-Themen 11
S Datentypen Ändern eines byte[] Arrays Java Basics - Anfänger-Themen 4
B byte-weise Verschlüsselung Java Basics - Anfänger-Themen 6
S Input/Output String in byte umwandeln? Java Basics - Anfänger-Themen 5
F von Byte zu 2 Stellig Hex Java Basics - Anfänger-Themen 3
G byte[] (Base64) korrekt übergeben Java Basics - Anfänger-Themen 4
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
G Binär in Byte speichern Java Basics - Anfänger-Themen 7
T Datentypen byte -Division..mal gehts mit cast mal ohne Java Basics - Anfänger-Themen 5
T Datentypen default ist int, cast zu byte nötig... Java Basics - Anfänger-Themen 2
F Byte nach Zahl umwandeln Java Basics - Anfänger-Themen 11
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
T Datentypen unsigned byte? Java Basics - Anfänger-Themen 9
G Integar zu Byte Java Basics - Anfänger-Themen 4
P Byte mit 0...255? Java Basics - Anfänger-Themen 5
N Datentypen Fehler beim Umwandeln in byte Java Basics - Anfänger-Themen 3
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
L Datentypen 250 und byte? Java Basics - Anfänger-Themen 4
L Datentypen byte[] in String und wieder zurück Java Basics - Anfänger-Themen 3
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
V Byte -> String -> Byte verlustfrei Java Basics - Anfänger-Themen 12
Hindi93 Byte to Int Java Basics - Anfänger-Themen 4
H Datentypen byte[] to int Java Basics - Anfänger-Themen 9
S hex zu byte Java Basics - Anfänger-Themen 4
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben