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);
这怎么能工作?!
我在网上找到了这个代码,编译时它打印了5和10:
int numbеr = 5;
int number = 10;
System.out.printf("Number one is %d and number two is %d.", numbеr, number);
这怎么能工作?!
Java支持Unicode字符,其中一个“数字”变量中的一个或多个字母是来自不同字母表的Unicode字母,您可以通过复制粘贴这两个名称并尝试执行此操作来检查这一点:
System.out.println("numbеr".equals("number"));
它们在肉眼看来是一样的,但事实并非如此,您的IDE将在控制台中显示为假作为评估结果。自己试试吧。
编辑:
字母“e”是不同的,将其转换为int的输出是101和1077,如果您进行Google搜索“unicode 1077”,以下链接是搜索引擎会抛给您的众多链接之一:
http://www.codetable.net/decimal/1077
如您所见,它说它是西里尔字母小写字母“e”。