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);
Как это работает?!
Ответ 1
Java поддерживает символы Юникода, одна или несколько букв в одной из переменных "числа" - это буква Юникода из другого алфавита, вы можете проверить это, скопировав оба этих имени и пытаясь сделать это:
System.out.println("numbеr".equals("number"));
Они кажутся такими же невооруженным глазом, но это не так, ваша IDE будет показывать false в консоли в качестве результата оценки. Попробуйте сами.
EDIT:
Буква "e" различна, выходы от ее ввода до int - 101 и 1077, если вы выполняете поиск в google для "unicode 1077", следующая ссылка является одной из многих поисковых систем, которые будут бросать вам: