byte[] to String Konvertieren

rachid1981

Mitglied
Guten Tag alle zusammen

String str = " dateii verschlüsseln ";
byte[] test1 = str.getBytes();
System.out.println("Test 1 :" + test1);

String test2 = new String(test1);
System.out.println("Test2 " + test2);

byte[] test3 = test2.getBytes();
System.out.println("Test3 " + test3);
Ausgabe:
Test 1 :[B@107077e
Test2 dateii verschlüsseln
Test3 [B@7ced01

weisst jemand vielleicht wie kann ich den Inhalt von Test1 und Test 3 gleich mache
gehts hier um gleiche String natürlich
Danke im voraus
 

truesoul

Top Contributor
Na bei Test1 und Test3 gibst du im printlin die referenzen beider Objekte aus.

Ich nehme mal an du willst eine Ausgabe was in Test1 und Test3 steht.

Java:
        String str = " dateii verschlüsseln ";
        byte[] test1 = str.getBytes();
        for(byte a : test1)
            System.out.println("Test3 " + a);
        
        System.out.println("Test 1 :" + test1.toString());

        String test2 = new String(test1);
        System.out.println("Test2 " + test2);

        byte[] test3 = test2.getBytes();
        for(byte a : test3)
            System.out.println("Test3 " + a);
Wenn du die beiden vergleichen willst siehe Kommentar über mir :)
 

rachid1981

Mitglied
Danke erstmal für deine Antwort
ich will aber das ich gleiche byte[] array habe und das brauche ich für meine Ver/Entschlüsselung
deswegen müssen die gleiche Inhalt haben
Danke
 
G

Gast2

Gast
Deine beiden Arrays sind gleich, du gibst dir da nich den Inhalt, sondern die String-repräsentation (!= der String den das array repräsentiert) des arrays aus.

Wenn du deine Kopie des Arrays erstellen willst dann kannst du das array auch einfach klonen.
 

Landei

Top Contributor
Du must unterscheiden, was "gleich" hier meint:

- Sind test1 und test2 die "gleichen" Arrays? Nein, es sind zwei unterschiedliche Objekte an unterschiedlichen Stellen im Speicher. Deshalb liefert die Standard-[c]toString[/c]-Methode, die für Arrays leider nicht überschrieben ist, auch unterschiedliche Werte (nimm [c]java.util.Arrays.toString(test1);[/c] wenn du eine vernünftige Ausgabe haben willst).
- Haben test1 und und test2 den "gleichen" Inhalt, sind also beide gleich lang und stehen die gleichen Bytes an den gleichen Stellen? Ja, sollten sie, so wie du das machst. Auch hier ist leider die [c]equals[/c]-Methode für Arrays nicht überschreiben, vergleicht also auf Identitäts-Gleichheit, nicht Inhalts-Gleichheit. Wieder gibt es Abhilfe, und zwar [c]java.util.Arrays.equals(test1, test2);[/c]

Beides ist unschön, und z.B. für Collections wie [c]ArrayList[/c] besser gelöst - so wie man es erwarten würde. Arrays bilden nicht nur in dieser Hinsicht eine Ausnahme in Java, und leider muss man diese Besonderheiten kennen, um keine Überraschungen zu erleben.
 

rachid1981

Mitglied
String str = " dateii verschlüsseln";

byte[] test1 = str.getBytes();
test1.clone();
System.out.println("Test 1 :" + test1);

String test2 = new String(test1);
System.out.println("Test2 " + test2);

byte[] test3 = test2.getBytes();

System.out.println("Test3 " + test3);

Assert.assertArrayEquals(test1, test3);
habe das jetzt so gebastelt aber trotzdem geht das nicht
also ich benutze assertArrayEquals um beide strings zu vergleiche
Danke
 
G

Gast2

Gast
Was willst du denn genau erreichen? Willst du einfach nur dein byte array kopieren?
Dann reicht doch folgendes:
Java:
		byte[] b1 = "Datei verschlüsseln".getBytes();
		byte[] b2 = Arrays.copyOf(b1, b1.length);
		
		System.out.println(new String(b1));
		System.out.println(new String(b2));
 

rachid1981

Mitglied
Nein das brauche ich nicht aber danke
bei umwandelung müssen die beide byte gleich sind und das brauche für die Ver/Enschlüsselung
und mit test1.toString() gehts leider auch nicht
wenn jemand noch eine Idee hat bitt schön
Danke an euch alle
 
G

Gast2

Gast
Was meinst du denn mit "gleich"?

Deine Arrays sind gleich, wenn gleich für dich bedeutet dass die einzelnen bytes in deinem array identisch sind.

Java:
		String str = "datei verschlüsseln";

		byte[] test1 = str.getBytes();
		String test2 = new String(test1);
		byte[] test3 = test2.getBytes();
		
		System.out.println("Test1 : " + new String(test1));
		System.out.println("Test2 : " + test2);
		System.out.println("Test3 : " + new String(test3));
		System.out.println(Arrays.equals(test1, test3));
 

rachid1981

Mitglied
also ich vergleiche die 2 byte array und die sind nicht gleich
test1 enthält [B@107077e
und Test 3 enthält [B@7ced01 habe auch versucht mit codierung und gehts auch nicht
wie zb. str.getByte("UTF8"); und so
 
G

Gastredner

Gast
Die Ausgabe von toString() ist nicht der Inhalt des Arrays! Verwende [c]java.util.Arrays.toString(test3)[/c], um dir den Inhalt deines Arrays ausgeben zu lassen.
Lies dir am besten Landeis Post nochmals aufmerksam durch.
 

rachid1981

Mitglied
Danke erstmal
hier ist die ausgabe
Test 1 :[B@8ed465
Test2 dateii
Test3 [32, 100, 97, 116, 101, 105, 105, 32]
und das ist nicht was ich haben will
 

Landei

Top Contributor
Und wenn du das auch für test1 machst, wirst du sehen, dass in beiden das gleiche drinsteht. Versuche doch bitte zu verstehen, dass es verschiedene Arten von Gleichheit gibt: Ich habe einen Einkaufswagen mit Ravioli, Löwenbräu und Butterkeksen und du hast einen Einkaufswagen mit Ravioli, Löwenbräu und Butterkeksen. Trotzdem ist es nicht der gleiche Einkaufswagen, und nichts anderes passiert hier in Java. Wir haben dir gezeigt, wie man auf Inhaltsgleichheit prüft ([c]java.utl.Arrays.equals(test1, test3)[/c]), dass die beiden Arrays aber trotzdem nicht "identisch" sind. Keine Ahnung, wie ich es noch erklären soll...
 

Ariol

Top Contributor
Nur für die Ausgabe (z.B. zum Debuggen):
Java:
		String str = " dateii verschlüsseln ";
		byte[] test1 = str.getBytes();
		StringBuilder sb1=new StringBuilder("0x");
		for(int i = 0; i < test1.length; i++)
			sb1.append(String.format("%02x", test1[i]));
		
		System.out.println("Test1 :" + sb1);

		String test2 = new String(test1);
		System.out.println("Test2 " + test2);

		byte[] test3 = test2.getBytes();
		StringBuilder sb3=new StringBuilder("0x");
		for(int i = 0; i < test3.length; i++)
			sb3.append(String.format("%02x", test3[i]));
		System.out.println("Test3 :" + sb3);

Wie das Vergleichen richtig geht hat Landei ja schon geschrieben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
S byte [] in string und zurück konvertieren Allgemeine Java-Themen 2
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
A Byte zu String Allgemeine Java-Themen 4
O Byte-Array zu String Allgemeine Java-Themen 7
E Byte zu String & umgekehrt Allgemeine Java-Themen 3
E Byte-Array to String: Zeichenkaputt Allgemeine Java-Themen 11
J Hex-String zu byte transformieren Allgemeine Java-Themen 7
G String in byte- Array Allgemeine Java-Themen 3
F byte in hex-String oder: Wer hat in Mathe aufgepasst Allgemeine Java-Themen 3
J NumberFormatException bei String->byte[] Allgemeine Java-Themen 12
I String -> byte[] -> String Allgemeine Java-Themen 2
E String -> byte[] Allgemeine Java-Themen 6
C Byte[] to String Allgemeine Java-Themen 7
J byte-Array als String übers http schicken Allgemeine Java-Themen 8
F List<String> zu byte[] Allgemeine Java-Themen 7
R byte - string? Allgemeine Java-Themen 10
X Byte To String Allgemeine Java-Themen 9
I Performance bei "String <-> Byte"-Umwandlung Allgemeine Java-Themen 4
Reeny byte[] als String speichern _ohne_ es zu dekodieren Allgemeine Java-Themen 6
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
Thallius unsigned byte Allgemeine Java-Themen 18
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
kodela Datentypen byte als unsigned interpretieren Allgemeine Java-Themen 23
TheWhiteShadow 2D-Grafik GIF Library mit byte output Allgemeine Java-Themen 10
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
kodela Byte Order Mark (BOM) bei readLine() ignorieren Allgemeine Java-Themen 5
RalleYTN Datentypen Unsignierter Byte zum signierten Byte Allgemeine Java-Themen 2
X Datentypen Byte geht nicht höher als 126 auch nicht mit casten? Allgemeine Java-Themen 22
R Byte Array Zeichensuche Allgemeine Java-Themen 6
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
D Decodierung von Mp3-byte[] Allgemeine Java-Themen 4
A ByteBuffer.get(byte[] dst,int offset,int length) Allgemeine Java-Themen 2
A RandomAccessFile.read(byte[] b) Allgemeine Java-Themen 9
P Datentypen Warum überhaupt Byte ? Allgemeine Java-Themen 12
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
M Chart per byte[] in JSP anzeigen Allgemeine Java-Themen 4
E int in byte Allgemeine Java-Themen 6
R ArrayList byte[] abspeichern Allgemeine Java-Themen 4
G byte ? : Allgemeine Java-Themen 7
R In einem Byte-Array nach einer gewissen Zahlenfolge suchen Allgemeine Java-Themen 7
hdi Speicherbelegung byte, short, int Allgemeine Java-Themen 8
J byte - hex - byte.. casten Allgemeine Java-Themen 8
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
M byte array splitten Allgemeine Java-Themen 3
T Zu doof für byte-Umrechnung ... Allgemeine Java-Themen 3
W CRC32 aus byte array Allgemeine Java-Themen 5
F byte[] aus einem BufferedImage Allgemeine Java-Themen 3
L byte -> byte[1] -> byte Allgemeine Java-Themen 2
P Einzelne Bits in einem Byte-Array setzen Allgemeine Java-Themen 2
Kr0e Synchronisieren: boolean,byte,char ? Allgemeine Java-Themen 2
S Überprüfung/Parsen eines Byte-Arrays Allgemeine Java-Themen 9
Semox Byte-Manipulation eines Bildes Allgemeine Java-Themen 7
Meldanor For-Schleifen - byte statt int? Allgemeine Java-Themen 11
C int zu byte cast - verständnis Allgemeine Java-Themen 3
R int to byte[] Array Allgemeine Java-Themen 4
MQue byte[] Array to Integer Allgemeine Java-Themen 4
MQue Byte to Int convertieren Allgemeine Java-Themen 2
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
W Verwendung von byte Allgemeine Java-Themen 9
G zu lange Byte code dateien Allgemeine Java-Themen 6
E Byte [] nach hex, dann nach dec Allgemeine Java-Themen 2
A Performance: byte[] in byte[][][] konvertieren Allgemeine Java-Themen 2
G 2 x byte zusammenkopieren Allgemeine Java-Themen 7
G byte nach int Allgemeine Java-Themen 3
foobar Object to byte[] ohne Serializable Allgemeine Java-Themen 6
data89 Die Größe eines Strings in Byte berechnen? Allgemeine Java-Themen 12
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
W Konflikt byte->int, in.read->arraycopy Allgemeine Java-Themen 7
T "unsigned" byte[] -> BigInteger Allgemeine Java-Themen 2
T Socket Server Anwendung - Empfang eines Byte-Arrays Allgemeine Java-Themen 7
ARadauer Blob aus byte Array erstellen? Allgemeine Java-Themen 3
T Object -> byte[] Allgemeine Java-Themen 5
G Byte[] zeichenweise lesen Allgemeine Java-Themen 4
G byte[] mit Strings füllen Allgemeine Java-Themen 2
B int -> byte Allgemeine Java-Themen 2
G file --> byte[] Allgemeine Java-Themen 7
E Problem beim Dateien kodieren ("Byte = Byte +1") Allgemeine Java-Themen 3
D byte nach integer? Allgemeine Java-Themen 4
MQue int in byte Allgemeine Java-Themen 18
G Maximalgröße von byte[] buffer Allgemeine Java-Themen 7
D datei in byte[]-array schreiben Allgemeine Java-Themen 6
D byte[] problem Allgemeine Java-Themen 3
MQue ArrayList in ein byte- Array Allgemeine Java-Themen 7
B ein spezielles Byte-Array sortieren Allgemeine Java-Themen 11
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
J byte-Array in Hashmap speichern? Allgemeine Java-Themen 3
S Problem beim Einlesen von byte-werten aus datei Allgemeine Java-Themen 2
L byte vs. int Allgemeine Java-Themen 6
G Umwandlung Byte in Integer Allgemeine Java-Themen 12
N Byte-Code entschlüsseln (Bitmasks?) Allgemeine Java-Themen 3
R Stream Byte für Byte durchgehen Allgemeine Java-Themen 5
S java.io.InputStream.read(byte[] b) überschreiben Allgemeine Java-Themen 33
B boolean array = byte array (platzverbrauch) Allgemeine Java-Themen 6
L byte[] to int Allgemeine Java-Themen 2
M Vector zu einem byte[] Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben