char-int-Addition in System.out.print

  • Themenstarter Themenstarter Killerhase
  • Beginndatum Beginndatum
K

Killerhase

Gast
Hallo,

ich versuche gerade einen Buchstaben mit einer beliebiegen Zahl zu addieren, jedoch bekomme ich bei der folgenden Codezeile als Ausgabe nur Müll heraus:

System.out.print ( ('a' + (char)i) );

Eine seperate Addition würde funktionieren, wieso geht es nicht innerhalb der System.out.print()-Funktion?

Grüße,
Killerhase
 
Danke, so funktioniert es. Wenn ich die Ausgabe jedoch noch um die AUsgabe einer Zahl erweitere, funktioniert auch der Code von dir nicht mehr. koef[] stellt ein int Array dar.

Java:
System.out.print(koef[i] + (char)('a' + i));
 
Jede als char deklarierte Variable oder jedes char-Literal wird in einen int umgewandelt sobald du anfängst arithmetische Operationen darauf auszuführen. Ein char ist intern einem int zugeordnet, siehe ASCII Tabelle.

Das Ergebnis der Berechnung ist erstmal immer ein int, und wird auch als solches angezeigt. Wenn du den dazugehörigen char anzeigen willst musst du das gesamte Ergebnis nach char casten:

Java:
System.out.print((char)(koef[i] + 'a' + i));

Eine seperate Addition würde funktionieren, wieso geht es nicht innerhalb der System.out.print()-Funktion?
Weil du das Ergebnis wenn du es separat berechnest vermutlich in ein char abspeicherst, und damit die Umwandlung vom int-Ergebnis zum Zeichen bereits in diesem Schritt durchführst, womit du das ganze schon als char vorliegen hast, und damit wird auch ein Zeichen ausgegeben wenn du es in ein print() steckst.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben