Byte[] zu char[]
Ich bin in einer Anforderung anzeigen von unformatierten byte-Daten in char form, es gibt einige Frage, die ich geblieben bin, wie zum Beispiel [ 1, 32, -1, -1 ] ( byte-Daten ), die beim umwandeln in char kommt [1, 3, 2, -, 1, - ,1]
Meine Anforderung
[ 1, 32, -1, -1 ] in char-format.
Intailly
Ich habe den Befehl
StringBuilder buffer = new StringBuilder();
for(int i = 0; i < byte1.length;i++){
buffer.append(byte1[i]);
}
char[] c = buffer.toString().toCharArray();
Nicht dienen, meine Anforderung.
Dann habe ich
char dig = (char)(((int)'0')+ (-32));
it gave an invalid output
Bitte helfen in meine Anforderung. Vielen Dank im Voraus
Wie würden Sie eine Zahl wie
Genau, ich habe keine Idee, aber leider ist meine Anforderung.... Eine alternative Methode ist auch cool....
Siehe: docs.oracle.com/javase/tutorial/java/nutsandbolts/...
Meinst du byte[] Byte[]?
Ich nehme an, Sie könnten nur werfen die signed in unsigned bytes; aber Sie werden am Ende mit "ASCII" - codes oberhalb 127 das ist nicht zu hübsch Aussehen... Auch, es werden control-codes (zum Beispiel die Anzahl
-1
vertreten zu sein als ein Charakter? Sie wollen sprichwörtlich die -
Zeichen nur???Genau, ich habe keine Idee, aber leider ist meine Anforderung.... Eine alternative Methode ist auch cool....
Siehe: docs.oracle.com/javase/tutorial/java/nutsandbolts/...
char
kann nur für ein einzelnes Zeichen, so 32
unmöglich ist einen char. also ist -1. 32 und -1 müssen zwei char
s.Meinst du byte[] Byte[]?
Ich nehme an, Sie könnten nur werfen die signed in unsigned bytes; aber Sie werden am Ende mit "ASCII" - codes oberhalb 127 das ist nicht zu hübsch Aussehen... Auch, es werden control-codes (zum Beispiel die Anzahl
12
löscht den Bildschirm.). Ich kann nicht sehen, dies ist eine vernünftige "Forderung", es sei denn, Sie erlauben für "Flucht" alle Zeichen, die nicht in den Bereich 0x20 bis 0x7F.
InformationsquelleAutor Jeetesh Nataraj | 2014-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum Sie benötigen, um stick-strings, verwenden Sie array von char-array, fügen Sie zuerst zusätzliche 0 bei der kurz-und, Wenn die Daten in byte-format verwenden
bytes1.toString()
und dann sowas,InformationsquelleAutor Rorschach
Wenn Sie nur eine druckbare Darstellung:
Aber wie erwähnt, benötigen Sie ein string-Array, wie, was für diese.
InformationsquelleAutor Jan
Vielleicht auch die folgenden arbeiten für Sie:
Dies erzeugt die Ausgabe:
Die "Darstellbare" Zeichen werden normalerweise gedruckt, der andere verwandelte sich in ein "entkommen" hex-code. Die
\
bekommt eine Sonderbehandlung, wenn Sie wollen, um zu zeigen, hex-codes, die mit einem backslash escapen, dann müssen Sie einen umgekehrten Schrägstrich als escape-backslash (und zu bekommen\\
in der Ausgabe, die Sie benötigen"\\\\"
im code...Ich auch gefangen, die den Charakter Wert
127
getrennt, da ich nicht wollte einDEL
im string, nicht sicher, welche Auswirkung das haben würde, abhängig von der Umgebung.Wenn Ihre Forderung ist in der Tat genau so, wie Sie beschreiben, könnten Sie den folgenden code (der produziert genau das, was Sie gefragt haben):
Ausgabe:
Bemerken - da einige zahlen erfordern mehr als einen Charakter, den Sie am Ende mit einer Zeichenfolge, die mehr als 4 Zeichen lang sein. Es gibt keinen Weg darum herum.
Arrays.toString(byte[])
produziert?InformationsquelleAutor Floris
Da ein char-Feld ist wörtlich 1 Charakter, es gibt keine Möglichkeit zum speichern von 2 Zeichen in einem char-Feld.
InformationsquelleAutor SaggingRufus