そのため、基本的にループを通過するたびに配列を 1 つずつ拡張する必要があるコードを作成しようとしています。はい、配列は固定サイズであり、毎回新しい配列が必要であることを知っています。また、配列ではなくリストを使用しても問題はないことも認識していますが、配列の使用を余儀なくされています。
私のコードはそうです:
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;
}
これを実行すると、取得する値が animalName に入力され、animalNumber が null になります。何が起こっているのか、どうすればこれを修正できますか。