URL: https://www.overclockers.at/coding-stuff/java_byte-array_to_string_162795/page_1 - zur Vollversion wechseln!
hi 5.
hab wieder ein java-problem, diesmal anderer natur. ich brauch eine funktion, die mir ein byte[] in einen string castet. aber nicht so, dass dann das bytefeld als string drinsteht, sondern das, was das bytefeld bedeutet.
ungefähr klar, was ich meine? weil bis jetzt bekomm ich immer nur crap a la "[B@b82368" und so raus, es sollt aber ein wort dastehen 
bütte helfen 
ps: hab grad von meinem lehrer gehört, dass ich das bytefeld zuerst in einen hexstring kriegen muss. hat wer einen link zu einem framework/package, das eine klasse "HexString" drin hat? hab mit google auf die schnelle nix angefunden 
//edit: hab hier bei opensourcefinland.org was gefunden, mit dem ergebnis bin ich aber trotzdem nicht zufrieden 
Suchst du das?
Oder willst du die Bytes im Array als Hexcode darstellen?ZitatConstructor Summary
String(byte[] bytes)
Constructs a new String by decoding the specified array of bytes using the platform's default charset.
Ich nehm mal an du meinst byte[]->hex[]->char[]->string...also in den Arrayfeldern ist der Ascii-Code in Bitcodierung gespeichert? So hätt ichs verstanden
Dann in int konvertieren und als char Array speichern
also
char[i] = byte[i].intValue()
und den String einfach aus dem char[] zusammensetzen
imo ist das das einzige was man für Java braucht 
(was ich nicht verstehe:
String toString()
Returns a String object representing this Byte's value.
static String toString(byte b)
Returns a new String object representing the specified byte.
Eigentlich müsste byte[i].toString() ja den Wert zurückgeben, während Byte.toString(byte[i]) den Hash zurückgibt ?)
Die Lösung ist zwar etwas russisch, aber:
"In Russia, you don't code Java, Java codes you!"
Zitat von ThrasherIch nehm mal an du meinst byte[]->hex[]->char[]->string...also in den Arrayfeldern ist der Ascii-Code in Bitcodierung gespeichert?
thx erstmal.Code: PHPprivate String toString(byte[] array) { char[] charray = new char[array.length]; for (int i=0;i<=array.length-1;i++) { Byte bt = new Byte(array[i]); charray[i]=bt.intValue(); } return new String (charray); }
Ich vermute du brauchst die Konvertierung ins Characterset -> Versuchs mit dem von gue vorgeschlagenen Tipp:
String decodedString = new String(theByteArray)
Zitat
Byte bt = new Byte(array[i]);
charray[i]=bt.intValue();
auch reichen..Code:chararray[i] = array[i].intValue();
funktioniert ja auch...Code:char a = 97;
Zitat von Thrashereigentlich würdauch reichen..Code:chararray[i] = array[i].intValue();
hab ich am anfang probiert gehabt...

pah, ein Einzeiler wie langweilig ;p
passt, warum kompliziert wenns auch einfach geht
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026