Система: Windows Vista 32-бит, 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, как в первом примере? Спасибо.
int
s иlong
s и посмотрите, что произойдет.int myInt = 1L
- person Jonathon Faust   schedule 19.11.2010