Система: Windows Vista 32-bit, Java 6.0.2
У меня есть несколько вопросов о преобразовании символов в целые.Я запускаю приведенный ниже код, оставляя myInt со значением 4:
char myChar = '4';
int myInt = myChar - '0';
Теперь, является ли это преобразование тем, что делает Java автоматически?Было ли значение ascii '0' вычтено из ascii '4', а затем приведено к int за кадром?Это сбивает меня с толку, потому что, когда я пытаюсь выполнить обратную операцию, я должен на самом деле привести результат в виде символа:
int anotherInt = 5;
char newChar = anotherInt + '0'; //gives error
char newChar = (char)(anotherInt + '0'); //works fine
Это происходит потому, что Java автоматически приводит (anotherInt + '0') кint, как в первом примере?Спасибо.