Подтвердить что ты не робот

Printf отображает разные значения для одной и той же переменной

Я нашел этот код онлайн, и когда он скомпилирован, он печатает 5 и 10:

int numbеr = 5;
int number = 10;
System.out.printf("Number one is %d and number two is %d.", numbеr, number);

Как это работает?!

4b9b3361

Ответ 1

Java поддерживает символы Юникода, одна или несколько букв в одной из переменных "числа" - это буква Юникода из другого алфавита, вы можете проверить это, скопировав оба этих имени и пытаясь сделать это:

System.out.println("numbеr".equals("number"));

Они кажутся такими же невооруженным глазом, но это не так, ваша IDE будет показывать false в консоли в качестве результата оценки. Попробуйте сами.

EDIT:

Буква "e" различна, выходы от ее ввода до int - 101 и 1077, если вы выполняете поиск в google для "unicode 1077", следующая ссылка является одной из многих поисковых систем, которые будут бросать вам:

http://www.codetable.net/decimal/1077

Как вы можете видеть, это говорит о кириллической строчной букве "e".