首页 > 解决方案 > 尝试仅在此数组方法中打印特定数字

问题描述

出于某种原因,我只管理了打印奇数,但它仍然以某种方式打印看似为空的值。我试图只打印返回为奇数的值。

public class Odd {

    public int[] removeEvens(int [] nums) {  //start of method
           
        int [] newArray = new int[nums.length];
        
        int count = 0;
        
        // start of array conversion
        for(int i = 0; i < nums.length; i++) {
                    
            newArray[count] = nums[i];
            count++;
            
            }
        
        int counter = 0;
        for (int i = 0; i < nums.length; i++) 
            if (newArray[i] % 2 == 1)
                newArray[counter++] = newArray[i];
        for (int i=counter; i < nums.length; i++)
            newArray[i] = 0;  
        
          
                    
    return newArray;    
    }
        // end of method 

    public static void main(String[] args) {
        Odd labObject = new Odd();
          int [] input = {1,2,3,4,5,6,7,8,9};
          int [] result = labObject.removeEvens(input);
          
          // Helper method Arrays.toString() converts int[] to a String
          System.out.println(Arrays.toString(result)); // Should print [1, 3, 5, 7, 9]

    }

}

标签: javaarraysmethods

解决方案


将其更改为return Arrays.copyOfRange(newArray, 0, counter);当您在 java 中创建具有指定大小的整数数组时,它将数组中的每个值设置为 0。这样做将在最后删除所有无关的 0。


推荐阅读