Konvertieren von Chars zu Int-Werte in Java

System: Windows Vista 32-bit, Java 6.0.2

Habe ich ein paar Fragen über das konvertieren von chars, ints.
Ich führen Sie den code unten verlassen myInt mit einem Wert von 4:

  char myChar = '4';
  int myInt = myChar - '0';

Nun, ist diese Umwandlung etwas, das Java nicht automatisch? Wurde der ascii-Wert von '0' subtrahiert von ascii '4', und dann cast zu einem int-hinter den kulissen? Das ist verwirrend für mich, weil wenn ich versuche den umgekehrten Vorgang, ich haben tatsächlich gewirkt das Ergebnis als char:

  int anotherInt = 5;
  char newChar = anotherInt + '0'; //gives error

  char newChar = (char)(anotherInt + '0'); //works fine

Ist das auftreten, da Java automatisch Gießen (anotherInt + '0') einen int-Wert, wie im ersten Beispiel? Danke.

Versuchen Sie es mit int s und long s und sehen, was passiert. int myInt = 1L

InformationsquelleAutor worker1138 | 2010-11-19

Schreibe einen Kommentar