Wieso charAt(0) + charAt(3) = INT-Wert?

aro

Mitglied
Wieso ergibt folgende Ausgabe einen INT Wert?
Java:
String test = "hallo";
System.out.println(test.charAt(0) + test.charAt(3));
Console Ausgabe = 212
------------------------------------------------------------------
System.out.println müsste ja einen String retournieren?
Java:
System.out.println(test.charAt(0)) = h (also ein String)
System.out.println(test.charAt(3)) = l (also ein String)

Und ja ich weiss wie ein CHAR aufgebaut ist! (https://de.wikipedia.org/wiki/Char_(Datentyp))

Aber kann es wirklich sein, dass diese Methode einfach den CHAR INT Wert der einzelnen Buchstaben retourniert?
 
http://mindprod.com/jgloss/ascii.html guck dir mal die Tabelle hier an 🙂
das kleine l hat den Char-Code von 108 und das kleine h hat den Char-Code von 104
108 + 104 = 212 😉
und zusammenrechnen tut er das, weil da einfach nur zwei Chars addiert werden, wenn du
Java:
System.out.println( 1 + 1 );
schreibst kommt da ja auch 2 raus 🙂

Schreib also:
Java:
System.out.println(test.charAt(0) + "" + test.charAt(3));
Dann bekommst du einen String mit den beiden Buchstaben
 
Ja das ist mir schon klar, also das System.out die addierten Char-Code Werte retourniert.

Aber ich übergebe ja System.out.println nicht zwei INT Werte sondern zwei Buchstaben (hier halt zwei CHARs)

Castet die Methode einfach implizit oder wie muss ich das verstehen?

Code:
char eins = 'h';
char zwei = 'l';
System.out.println(eins + zwei);
Ausgabe genau gleich = 212

Danke für den Link, da muss ich mir mal Zeit nehmen 😉
 

Zurück
Oben