有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组为什么我在JAVA中的emptycase测试失败?

编辑:问题解决了,谢谢你们。谢谢你给我的其他建议

我正在代码战中做一个名为“蜗牛”(使用JAVA)的4kyu-kata。一切正常,所有测试都通过了,而不是一个“空案例”

该测试的日志显示:

[[]] should be sorted to []

所以我猜,“如果一个数组是空的,我也应该返回一个空数组”

下面我介绍我的方法的开头:

public static int[] snail(int[][] array) { 
    if ((array.length==0)) {
        int[] result  = new int[0]; 
        return result;
    }      

    if ((array==null)) {
        int[] result  = null;
        return result;
    }

我还尝试为这两种情况返回null,然后我也尝试在这两种情况下返回空数组

你知道怎么做才能通过这个空案例测试吗


共 (3) 个答案

  1. # 1 楼答案

    确定代码中的问题的步骤:

    1. 阅读说明
    2. 认识到[]不是null
    3. 看看你的代码; 当输入为空时,请注意返回null
    4. 接受[]不是null
    5. 当输入为空时返回并清空数组
    6. 了解array.lengtharray为空时,保证array.length抛出NullPointerException
    7. 在尝试取消引用array参数之前,先测试null
  2. # 2 楼答案

    我认为外部数组包含内部数组,所以它的长度等于1,不是吗?内部数组不包含任何内容,因此应检查其中一个

  3. # 3 楼答案

    您的第一个if条件的计算结果为trueiff使用一个数组调用该方法,该数组被初始化为new int[0][],其中array.length0。测试日志告诉您考虑一个案例,其中^ {< CD4>}是^ {< CD7>},^ {< CD8>}是^ {},例如某人已经初始化并分配数组,如

    int[][] array = new int[1][];
    array[0] = new int[0];
    

    只是为了可读性——你的if条件都有一对额外的括号