Char +1 wird int?

Thallius

Top Contributor
Hallo

wer erklärt mir diesen Blödsinn?

String scheduleType = "A";
return Character.toString( scheduleType.charAt(0) + 1 );

Ich erwarte hier als Rückgabe ein "B" aber die IDE meckert das Charakter.toString(int) nicht erlaubt ist.
Warum wird aus einem char, wenn man 1 addiert plötzlich ein int?

Gruß

Claus
 
Java Language specification 5.6.2, da werden diverse Optionen genannt. Wenn keine zutrifft, dann wird in einen int gecastet. Daher kommt als Resultat ein int raus. Und ein int passt da nicht immer, denn beim convertieren könnten Daten verloren gehen.
 
Was erwartest du denn z.B. hier:

Java:
System.out.println(1 + 1.0);

Findest du es da auch Blödsinn, dass es zum Double wird?

Btw. Seit Java 11 gibt es sogar die Methode mit (int) die dann den Unicode Raum abdeckt.
 
Tipp... wenn möglich, nach (char) nach der Rechenoperation casten. Dadurch kann danach wieder mit einem char hantiert werden.
 

Zurück
Oben