计数数字在数组中可被10整除

And*_*eal 2 java arrays methods

我得到了一个赋值,它让我创建了3个方法来创建一个数组,打印一个数组,并计算一个数组中可被10整除的所有数字.给我带来最多麻烦的部分是计算可被10整除的数字.这是我到目前为止的代码:

public int[] createArray(int size) {

    Random rnd = new Random();
    int[] array = new int[size];

    for (int i = 0; i < array.length; i++) {
        array[i] = rnd.nextInt(101);
    }
    return array; 
}

public void printArray() {

    Journal5a call = new Journal5a();
    int[] myArray = call.createArray(10);

    for (int i = 0; i < myArray.length; i++) {
        System.out.println(myArray[i]);
    }
    System.out.println("There are " + call.divideByTen(myArray[i]) + " numbers that are divisable by 10");
}

public int divideByTen(int num) {

    int count = 0;

    if (num % 10 == 0) {
        count++;
    }
    return count;        
}

public static void main(String[] args) {

    Journal5a call = new Journal5a();
    Random rnd = new Random();

    call.printArray();
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 5

将数组传递给方法,并使用它来确定计数.你的算法看起来合理.就像是,

public int divideByTen(int[] nums) {
    int count = 0;
    for (int num : nums) {
        if (num % 10 == 0) {
            count++;
        }
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

或者,在Java 8+中,使用IntStream和之filter类似

return (int) IntStream.of(nums).filter(x -> x % 10 == 0).count();
Run Code Online (Sandbox Code Playgroud)

然后你就可以这样称呼它

System.out.println("There are " + call.divideByTen(myArray) 
        + " numbers that are divisible by 10");
Run Code Online (Sandbox Code Playgroud)

或者printf和内嵌像

System.out.printf("There are %d numbers that are divisible by 10.%n", 
        IntStream.of(nums).filter(x -> x % 10 == 0).count());
Run Code Online (Sandbox Code Playgroud)