我正在制作一个用动态恐惧症读入文本文件的程序。恐惧症的名称和动物的名字。
该文件如下所示:
cynophobia dogs
ailurophobia cats
musophobia rats
ichthyophobia fish
我希望输出看起来像这样:
ailurophobia - fear of cats
cynophobia - fear of dogs
ichthyophobia - fear of fish
musophobia - fear of rats
这是我得到的输出:
cynophobia - fear of
ailurophobia - fear of
musophobia - fear of
ichthyophobia - fear of
你可以看到动物的名字没有打印......
我的节目由三个类组成,主要是Zoophobia和Dictionary。 问题出在load()方法和print()。
//主要课程
package exercise1;
public class Main {
public static void main(String[] args) {
Dictionary dic = new Dictionary();
dic.load();
dic.print();
}
}
// Zoophobia class
package exercise1;
public class Zoophobia implements Comparable<Zoophobia> {
private String phobia, animal;
//constructor
public Zoophobia(String thePhobia, String theAnimal)
{
phobia = thePhobia;
animal = theAnimal;
}
//INstance methods
public void setPhobia(String thePhobia)
{
phobia = thePhobia;
}
public void theAnimal(String theAnimal)
{
animal = theAnimal;
}
public String getPhobia()
{return phobia;}
public String getAnimal()
{return animal;}
//Fattar inte! //Slide 10
public int compareTo(Zoophobia zp)
{
return phobia.compareTo(zp.phobia);
}
public String toString()
{
return phobia + " - fear of " + animal;
}
}
//字典类
package exercise1;
import java.util.*;
import java.io.*;
public class Dictionary {
private ArrayList<Zoophobia> arr;
//Constructor that initializes the dynamic array
public Dictionary()
{ arr = new ArrayList<Zoophobia>(); }
//Method to read in data from file
public void load()
{
String loaded, phobia, animal;
String[] array;
try{
BufferedReader infile = new BufferedReader(new FileReader("old.txt"));
while((loaded = infile.readLine()) != null)
{
array = loaded.split(" ");
//Collections.sort(arr);
arr.add(new Zoophobia(array[0].trim(), array[1].trim()));
}
infile.close();
}
catch(IOException ierr){}
}
public void print()
{
for(int i = 0; i < arr.size(); i++)
{
System.out.println(arr.get(i));
}
}
}