我试图使用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;
    }