我试图使用java反转一个int,由于某种原因,当给定0001234时,我的程序不知怎么地将其读取为668并返回886
这是我的密码和密码我试图使用java反转一个int,由于某种原因,当给定0001234时,我的程序不知怎么地将其读取为668并返回886,java,reverse,Java,Reverse,这是我的密码和密码 public static int reverseInt(int x) { String t = Integer.toString(x); StringBuilder sb = new StringBuilder(t); sb = sb.reverse(); String b = sb.toString(); x = Integer.valueOf(b)
public static int reverseInt(int x) {
String t = Integer.toString(x);
StringBuilder sb = new StringBuilder(t);
sb = sb.reverse();
String b = sb.toString();
x = Integer.valueOf(b);
return x;
}
这是我的测试仪。g是需要反转的int值,但它被读取为668。知道为什么吗?
为测试添加打印语句时:
int x = 1234000;
int b = 24230100;
int g = 001234;
int s = reverseInt(x);
int q = reverseInt(b);
int y = reverseInt(g);
System.out.println("this is y:" + y);
g的初始打印是668,第7行的打印返回866
int g=001234代码>这不是你认为的数字。那是一个八进制数。如果前导0是有效的,则需要一个字符串,而不是一个数字。是的,字符串通常也更适合反转它们。
String t = Integer.toString(x);
System.out.println(x);
StringBuilder sb = new StringBuilder(t);
sb = sb.reverse();
String b = sb.toString();
System.out.println(b);
x = Integer.valueOf(b);
return x;
}