在java中删除整数数组输出中的尾随零

在java中删除整数数组输出中的尾随零,java,Java,在我的代码中,我得到了一个数组的输出,但是在得到数组后,它会显示一些不需要的零,你能解释一下避免得到这些不需要的零的方法吗 static int[] cutTheSticks(int[] arr) { int min,i,j,count=0; int []arr2=Arrays.copyOf(arr,arr.length); int []temp =Arrays.copyOf(arr,arr.length); for(i=0;i<arr.length;i++){

在我的代码中,我得到了一个数组的输出,但是在得到数组后,它会显示一些不需要的零,你能解释一下避免得到这些不需要的零的方法吗

 static int[] cutTheSticks(int[] arr) {
 int min,i,j,count=0;
 int []arr2=Arrays.copyOf(arr,arr.length);
 int []temp =Arrays.copyOf(arr,arr.length);


    for(i=0;i<arr.length;i++){
        Arrays.sort(arr2);
        min= arr2[0];
        for(j=0;j<arr.length;j++){

            if(temp[j]>0){
                count++;
            }
            temp[j]=temp[j]-min;

        }
        int []res = new int [arr.length];
        while(count!=0) {
            res[i] = count;
            count = 0;

    }
    return res;



  }
static int[]cutchesticks(int[]arr){
int min,i,j,count=0;
int[]arr2=Arrays.copyOf(arr,arr.length);
int[]temp=Arrays.copyOf(arr,arr.length);
对于(i=0;i,您可以计算
res
的“大小”,不带尾随零,如下所示:

int rlen = res.length;
while (res[rlen-1] == 0) {
    --rlen;
}
如果愿意,您可以使用计算出的“有效长度”
rlen
res
数组重新分配到正确的大小:

res = Arrays.copyOf(res, rlen);

或者在需要知道“正确”时,只需使用
rlen
而不是
res.length
res的大小

检查这一点,你能更精确地知道哪些零是不需要的吗?一个显示输入、实际结果和期望结果的示例会很有帮助。如果我输入6个整数作为输入5 4 4 2 8,我希望输出像6 4 2 1,但我得到的输出是6 4 2 1 0 0,它总是显示额外的零作为结果数组大小等于输入的数字。您这样做是错误的。您继续使用(并因此排序)原始数组。但是您正在从副本中进行剪切。您应该重新排序以计算新的最小木棒,以便将其应用于后续剪切。此外,使用
列表
可以更容易地完成此操作。但是如果不能,我建议您编写一些辅助方法来操作数组。永远不要在评论中添加更多信息,始终更新您的问题。这样,从一开始就包括“预期”与“实际”输出!感谢您给出令人惊讶的答案,这绝对有效,而且非常有用。:-)