java整数到字符串转换失败

时间:2017-10-14 10:41:50

标签: java string

为什么编译器在转换为字符串时更改int的值以及它如何获得新值。

int n = 1003456;
String str = Integer.toString(n);
System.out.println(str.length() + " " + n + " " + str);
int m = 0013456;
String string = Integer.toString(m);
System.out.println(string.length() + " " + m + " " + string);

上述程序的输出是:

7 1003456 1003456
4 5934 5934

输出的第一行是清除的,但第二行输出显示整数的大小是4(但我认为如果m是13456则应该是5)。显示m的新值被更改。我应该如何操纵代码来获得我的m值。

1 个答案:

答案 0 :(得分:3)

以0开头的整数文字由编译器解释为八进制数,而不是十进制数。所以

int m = 0013456;

相当于

int m = 5934;