Java 反向整数值

Java 反向整数值,java,integer,reverse,Java,Integer,Reverse,我想不出来。这是家庭作业。我需要创建一个方法来反转传递给它的整数。由于每个人的输入,我现在能够修复for循环中的outofBounds错误。传递给方法的整数可以是任意长度。我必须返回一个整数,而不是数组或字符串。但是现在我在int u=backInt[];行上得到了一个“未解决的编译问题:标记“[”上的语法错误,该标记后面应该有表达式”。但是我不知道在[]中放什么的。我无法找到将整数数组转换为整数的方法,以便将整数传回去,因此我丢失了。以下是我迄今为止的代码: public static int

我想不出来。这是家庭作业。我需要创建一个方法来反转传递给它的整数。由于每个人的输入,我现在能够修复
for
循环中的outofBounds错误。传递给方法的整数可以是任意长度。我必须返回一个整数,而不是数组或字符串。但是现在我在
int u=backInt[];
行上得到了一个“未解决的编译问题:标记“[”上的语法错误,该标记后面应该有表达式”。但是我不知道在[]中放什么的。我无法找到将整数数组转换为整数的方法,以便将整数传回去,因此我丢失了。以下是我迄今为止的代码:

public static int reverseIt(int x){

    int y = String.valueOf(x).length();
    int[] backInt = new int [y];
    for(int z = 0; z < y; z++){
        x %=10;
        backInt[z] = x;
        x /= 10;
    }
            int u = backInt[];
            return u;


    return -1;

}
publicstaticintreverseit(intx){
int y=String.valueOf(x).length();
int[]backInt=新的int[y];
对于(intz=0;z
您在循环中走得太远了。应该是:

for(int z = 0; z < y; z++) {
for(int z=0;z
…相反

以输入的
12
为例。它有两个字符长,因此
backInt
的长度为2。当您通过循环时,您正在迭代
0
1
2
z
值。
backInt[2]的值是多少
backInt
中只有两个元素时


编辑:您的代码也将中断,例如2147483646,因为您生成的整数对于整数类型来说太大。但这不是重点。

您在循环中走得太远了。它应该是:

for(int z = 0; z < y; z++) {
for(int z=0;z
…相反

以输入的
12
为例。它有两个字符长,因此
backInt
的长度为2。当您通过循环时,您正在迭代
0
1
2
z
值。
backInt[2]的值是多少
backInt
中只有两个元素时


编辑:您的代码也将中断,例如2147483646,因为生成的整数对于整数类型来说太大。但这不是重点。

您从
z=0
开始,以
z=y
结束。这是
y+1
循环的次数,但您的数组正确地只有
y
元素长,因此当您尝试写入不存在的元素时,在循环的最后一次迭代中出现异常。但是,到那时,
x
应该已经为零,因为您已经处理了所有的
y
数字,所以停止条件应该是
z您从
z=0
开始,以
z=y
结束。这就是
y+1
ti通过循环执行mes,但是您的数组正确地只有
y
元素长,因此当您尝试写入不存在的元素时,在循环的最后一次迭代中出现异常。但是,到那时,
x
应该已经为零,因为您已经处理了所有
y
数字,所以停止条件应该是
zJava数组是0索引的。这意味着,如果您执行
int[]arr=new int[10]
,您将创建一个整数数组,可以容纳十个
int
,第一个int存储在
arr[0]
,第二个存储在
arr[1]
中,最后一个存储在
arr[10-1]
中,即
arr[9]


要修复代码,请更改
zJava数组是0索引的。这意味着,如果执行
int[]arr=new int[10]
,您将创建一个整数数组,该数组可以容纳十个
int
,第一个int存储在
arr[0]
中,第二个在
arr[1]
中,最后一个在
arr[10-1]
中,即
arr>[9] 


若要修复代码,更改
z听起来像是家庭作业。请注意,您在计算机上运行此代码太早了。请先尝试在纸上运行它。跟踪每个变量的当前值,并一次跟踪一行程序。从
x
的两位数值开始。您很快就会看到当前代码的几个问题算法。@Michael不,看起来你不是。据我所知,你唯一做错的事就是忘了[家庭作业]tag:)听起来像是家庭作业。你在计算机上运行这段代码太早了。请先在纸上运行。跟踪每个变量的当前值,并一次跟踪一行程序。从
x
的两位数开始。你很快就会发现当前算法有几个问题。@Michael不,它没有看起来不像。据我所知,你唯一做错的事就是忘记了[家庭作业]标签:)