在数组方法中查找 3 的倍数并返回它

Finding Multiple of 3 in a Array Method and returning it

我目前正在尝试在一个数组中查找三个的所有多个值。我知道不使用方法很热,但是当我尝试调用该方法并检索返回的数组时,它会给我错误并且无法工作。

public class Scratchpad extends ConsoleProgram
{
    public void run()
    {
        int[] test = {4, 7, 9, 7, 12};
        
        findMultipleOfThree testArr = new findMultipleOfThree[int[] test];
        
        System.out.println(testArr);
    }
    // Copy and paste your Unit Test method here
    
    public int findMultipleOfThree(int[] arr)
    {
        int length = arr.length;
        int[] result = new int[length];
    
        for(int i = 0; i < arr.length; i++)
        {
        
            if(arr[i] % 3 == 0)
            {
                result[i] = arr[I];
            }
        }
        return result;
    }
}

您似乎混淆了方法和 类。您不能声明方法的实例,它们不是可用于变量类型的类型。如果你想调用这个方法,你会想使用类似 int result = findMultipleOfThree(test); 的东西,并用 System.out.println(result); 打印结果 希望这对您有所帮助!

您的代码中存在一些问题。我认为在 run 方法的第二条指令中,您试图调用下面定义的 findMultipleOfThree 方法。

要调用一个方法,您只需键入它的名称并传递它期望的参数。在您的情况下,test 数组查找可被 3 整除的元素。另外,您还需要声明第二个数组 result 以便存储从您的方法返回的数组,其中只有可被整除的元素3.

最终,在您的 findMultipleOfThree 方法中,您将 i 变量称为 I 时出现了一个小错字。 Java是case-sensitive,所以区分lower-case和upper-case个字母。

我想这就是你想写的。

public class Scratchpad extends ConsoleProgram {
    public void run() {
        int[] test = {4, 7, 9, 7, 12};
        int[] result = findMultipleOfThree(test);
        System.out.println(Arrays.toString(result));
    }

    public static int[] findMultipleOfThree(int[] arr) {
        int length = arr.length;
        int[] result = new int[length];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 3 == 0) {
                result[i] = arr[i];
            }
        }
        return result;
    }
}