gpt4 book ai didi

java - 将数组传递给数组会产生空值,我做错了什么?

转载 作者:行者123 更新时间:2023-12-01 18:59:08 25 4
gpt4 key购买 nike

所以我试图编写一些代码,基本上每次通过循环时都需要将数组扩展一。是的,我知道数组是固定大小的,并且每次都需要一个新数组。我还知道,如果我使用列表而不是数组,我不会遇到任何问题,但我被迫使用数组。

我的代码是这样的:

  public static void getAnimals()
{
String animalName[] = new String[1];
int animalNumber[] = new int[1];
int lengthOfAnimals;

animalName[0] = "Null";
animalNumber[0] = 0;

while (!animalName[animalName.length - 1].equals("EXTERMINATE"))
{


animalName[animalName.length - 1] = JOptionPane.showInputDialog("Name an animal?");
String numLeft = JOptionPane.showInputDialog("How many are left?");
animalNumber[animalNumber.length - 1] = Integer.parseInt(numLeft);

if (animalName[animalName.length - 1].equals("EXTERMINATE"))
{
break;
}

else
{

System.out.println(animalName[animalName.length - 1]);
animalName = expandName(animalName);
animalNumber = expandNumber(animalNumber);

}
}




}

public static String[] expandName(String animalName[])
{

String animalNameExpanded[] = new String[animalName.length + 1];

for (int a = 0; a <= animalName.length - 1; a++)
{
animalNameExpanded[a] = animalName[a];
}


return animalNameExpanded;
}

public static int[] expandNumber(int animalNumber[])
{
int animalNumberExpanded[] = new int[animalNumber.length + 1];

for (int a = 0; a <= animalNumber.length - 1; a++)
{
animalNumberExpanded[a] = animalNumber[a];
}

return animalNumberExpanded;
}

现在,当运行时,get 放入animalName 和animalNumber 中的值现在为空。发生了什么事以及如何解决这个问题。

最佳答案

String animalNameExpanded[] = new String[animalName.length + 1];

创建一个新数组,其所有条目均为null。然后,您将旧数组中的值复制过来,填充除最后一个条目之外的所有条目,该条目仍为 null

复制后添加animalNameExpanded[animalName.length] = "Null";,这样

while (!animalName[animalName.length - 1].equals("EXTERMINATE"))

在下一轮中不会从数组中读取 null

关于java - 将数组传递给数组会产生空值,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com