在做我的一个项目时,我遇到了一个问题。
当我运行以下程序时:
public class test {
public static void main(String[] args) {
String x = "1234";
System.out.println("Int value: " + Integer.valueOf(x.charAt(0)));
System.out.println("String value: " + x.charAt(0));
}
}
它给了我结果:
Int value: 49
String value: 1
这让我很困惑,因为 x = "1234"
,所以当它运行第四行时,结果应该与:
System.out.println("Int value: " + Integer.valueOf(1));
理论上应该给我:Int value: 1
那么是什么导致结果变成 49
呢?
最佳答案
有区别
System.out.println("Int value: " + Integer.valueOf(1));
和
System.out.println("Int value: " + Integer.valueOf(x.charAt(0)));
在第二行中,真正发生的事情是这样的——
System.out.println("Int value: " + Integer.valueOf('1'));
请注意,“1”作为字符而不是整数传递。结果,Integer.valueOf 返回字符“1”的 ASCII 值,即 49。
引用ASCII table亲眼看看。
关于java - 的整数值给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683098/