Frage von RhoMalV, 23

JAVA: Char-(ASCII)-Wert in eine Int-Variable implementieren und einen Int-Wert in einen Char umwandeln?

Hallo.

Ich habe schon mal danach gegoogled und mal einige Foren durchgesehen.

Allerdings war es nie so kurz und knapp auf den Punkt gebracht, wie ich mir das vorgestellt hatte.

Mir geht es jetzt gar nicht um eine String-CharAt-Methode sondern wirklich nur, wie ich nur als Beispiel von den Chars "a", "b", "A", "B" die ASCII-Position in einen Int-Wert umwandle.

Und wie ich z.B. die Int-Werte (64), (127) jeweils in einen Char verwandle.

Danke schon mal im voraus!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Schachpapa, 15
char a = 'A';
int b = a;

char sind eigentlich unsigned short ints (2 Byte ohne Vorzeichen). Die kannst du ohne Probleme an int zuweisen.

Umgekehrt geht das genauso:

char a = 64;  // a enthält nun '@'

Umwandeln von Ziffer nach Zahlwert, wenn du sicher weißt, dass z eine Ziffer '0' bis '9' enthält:

int wert = z - '0';

Edit:

int i = 64;
char c = (char) i;

Geht nur mit cast, weil int der "breitere" Datentyp ist. Upcast von char nach i geht auch ohne explizites casting

Antwort
von FelixCrafting, 8

Das müsste mit casten gehen:
char c;
int i;
i = (int) c;
c = (char) i;

Evtl. geht es auch ohne die Klammern (mit Inhalt).

Antwort
von BigReddy, 3

Wie die Anderen schon geschrieben haben:

char, int, long und alle anderen so genannten Simplen Datentypen kann man einfach ohne etwas zu verändern untereinander speichern.
So ist es egal, ob du:
int a = 97; oder
char b = 'a'; oder 
char c = 97;
schreibst.

Möchtest du den Wert als anderen Datentyp ausgeben, z.B. int a als char, dann nutzt du einen Typecast:
System.out.println((char)a);
Typecast bestehen aus dem Objekt, dass du anders wahrnehmen möchtest und der davor in Klammern gesetzten Klasse/Datentyp:
Class classObject = (Class)object;  

Antwort
von greenvbuser, 13

Soweit ich weiß, kannst du int und char direkt casten:

int x = (int)'a';

respektive

char y = (char)72;

Keine passende Antwort gefunden?

Fragen Sie die Community