INT to ASCII-char

B

ByeBye 46085

Hallo,

wie konvertiert man einen Integerwert (0-255) in einen Ascii-Charakter?

So funktioniert die Ausgabe:
Java:
aus.write("Ž");
das nicht:
Java:
int x = 142;
aus.write(x);

Wie kann ich die Konvertierung durchführen?

Java:
out = serss.getOutputStream();
Charset cs = Charset.forName("US-ASCII");
OutputStreamWriter aus = new OutputStreamWriter(out,cs);

Gruss Markus
 
also entweder so:

Java:
aus.write((char)x);
oder so
Java:
aus.write("" + x);

kommt drauf an, was du genau brauchst, einen char, den diese Zahl repraesentiert oder eine Stringdarstellung dieser Zahl...

mfg, frager
 
Hallo,

ich möchte die Zahlen von 0-255 übertragen. Die Umwandlung nach String oder char ist nur ein Zwischen schritt. Da es direkt nicht funktioniert. Mit dem cast (char) werden nicht alle 256 Werte richtig umgewandelt (Java arbeitet mit Unicode). Mit Ascii geht jedoch (mein erstes Codebeispiel ist binär die Zahl 142). Nun muss ich nur noch aus einem Integer ein ASCII-Zeichen erstellen können.

Danke trotzdem.

Gruss Markus
 
wandel den int doch in ein byte... und dann mit new String(byte[]) in einen String, wenn es unbedingt ein String sein muss. Du kannst bei der Konvertierung zw. byte[] und String noch ein Charset-Encoding angeben, z.B. UTF-8 oder ISO-8859-1. Damit wird die Abbildung der Bytes in Unicode-Zeichen konfiguriert.

zu obiger Aussage ein Beispiel:
Code:
int value = 255;

byte[] b = { (byte)value };

String result = new String(b);

// do something with result....


Gruß
Udo
 
Geht es auch einfacher bzw. anders?
Möchte gern die ersten 25Unicode(Buchstaben) ausgeben lassen- habe die Integerwerte bereits.
So dass es ungefähr so aussieht:
0 A
1 B
2 C
....
 
Ja danke! Hatte das schonmal ausprobiert, aber nicht bedacht dass der Unicode von 'A' gleich 65 ist und nicht '0'..musste also einfach +65 ausführen.
 
Zurück