在空

时间:2018-03-25 17:20:21

标签: java arrays loops

我目前正在开展一个项目。在一个方法listPokemon中,我应该返回pokedex中的所有Pokemon,如果它是空的,则返回null。我无法弄清楚如何让它返回null,我有点卡住了。在情况1中,当它被调用时,如果listPokemon为null,则它应该打印" Empty。"这是我到目前为止使用的代码。有人能帮助我吗?

listPokemon:

public String[] listPokemon() {

        String[] Poke = new String[counter];
        for (int i = 0; i < counter; i++) {
            Poke[i] = pk[i].getSpecies();
        }

    }
    return Poke;
}

和案例1:

case 1:
                System.out.println();

                String[] pokemonList = pk.listPokemon();
                if (pokemonList == null)
                    System.out.println("Empty");
                else
                    for (int i = 0; i < pokemonList.length; i++) {
                        System.out.println((i+1) + ". " + pokemonList[i]);
                    }


                break; 

2 个答案:

答案 0 :(得分:-1)

返回null可以使用语句return null逐字地完成。我不确定counter在你的例子中的价值是什么,但在我看来你需要重写你的for循环:

public String[] listPokemon() {
    if(pk.length > 0){
        String[] Poke = new String[pk.length];
        for (int i = 0; i < pk.length; i++) {
            Poke[i] = pk[i].getSpecies();
        }

        return Poke;
    }
    else {
        return null;
    }
}

我建议您查看List或Collection API,因为它有简洁的方法来处理列表:它有mehods isEmpty(),您可以在不知道列表大小的情况下添加追加到列表,因为您需要使用Arrays。

java 8中的Streams API功能更强大,但更复杂。

答案 1 :(得分:-2)

这是一个字符串数组。对?因此,如果数组中的第一项是空的,那么它应该返回空。我不认为一旦数组已经初始化,它就可以为null。