繁体   English   中英

为什么我的方法是打印 null 而不是数组?

[英]Why is my method printing null instead of the array?

这段代码可能有什么问题? 练习的测试系统抛出如下错误

调用 getIntegers() 方法会打印出“null”的值,但是应该是“[1,2,3,4,5,6]”。 提示:检查您的空格和/或拼写。

可能是private static scanner scanner = new scanner (System.in); 因为我在 main 中使用它,但系统不允许添加 main,因为它默认提供它?

import java.util.Scanner;

import java.util.Arrays;

public class formato {
    

    public static int[] getIntegers(int capacity) {
        static Scanner scanner = new Scanner(System.in);
        int[] array = new int[capacity];
        System.out.println("Enter "+capacity+" integer values:\r");
        for(int i = 0; i<array.length ; i++){
        array[i] = scanner.nextInt();
        }
        return array;
    
    }

    public static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.println("Element " + i + " contents " + array[i]);
        }
    }

    public static int[] sortIntegers(int[] array) {
        // int[] sortedArray = new int[array.length];
        // for(int i=0; i<array.length; i++) {
        // sortedArray[i] = array[i];
        int[] sortedArray = Arrays.copyOf(array, array.length);
        // }
        boolean flag = true;
        int temp;
        while (flag) {
            flag = false;
            for (int i = 0; i < sortedArray.length - 1; i++) {
                if (sortedArray[i] < sortedArray[i + 1]) {
                    temp = sortedArray[i];
                    sortedArray[i] = sortedArray[i + 1];
                    sortedArray[i + 1] = temp;
                    flag = true;
                }
            }
        }
        return sortedArray;
    }
}

定义一个 class 常量:

public static final Scanner scanner = new Scanner(System.in);

这将对您有所帮助。

否则只需使用Scanner scanner = new Scanner(System.in);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM