Answer:
See Explaination
Explanation:
/*****************************************Hokeemon.java********************************/
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Hokeemon {
private String name;
private String type;
private int age;
public Hokeemon(String name, String type, int age) {
super();
this.name = name;
this.type = type;
this.age = age;
}
public Hokeemon() {
this.name = "";
this.type = "";
this.age = 0;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String liveIn() {
if (this.type.equalsIgnoreCase("dwarf")) {
return "Mountain";
} else if (this.type.equalsIgnoreCase("elf")) {
return "Dale";
} else if (this.type.equalsIgnoreCase("fairy")) {
return "Forest";
} else {
return "Shire";
}
}
public boolean areFriends(Hokeemon other) {
if (this.type.equalsIgnoreCase(other.type)) {
return true;
} else if ((this.type.equalsIgnoreCase("dwarf") && other.type.equalsIgnoreCase("elf"))
|| (this.type.equalsIgnoreCase("elf") && other.type.equalsIgnoreCase("dwarf"))) {
return true;
} else if ((this.type.equalsIgnoreCase("hobbit") && other.type.equalsIgnoreCase("fairy"))
|| (this.type.equalsIgnoreCase("fairy") && other.type.equalsIgnoreCase("hobbit"))) {
return true;
} else {
return false;
}
}
public static Hokeemon[] getData(String file) {
Hokeemon[] hokeemons = new Hokeemon[8];
int i = 0;
try {
Scanner scan = new Scanner(new File(file));
while (scan.hasNextLine() && i < hokeemons.length) {
String line = scan.nextLine();
String[] data = line.split("\\s+");
String name = data[0];
String type = data[1];
int age = Integer.parseInt(data[2]);
hokeemons[i] = new Hokeemon(name, type, age);
i++;
}
scan.close();
} catch (FileNotFoundException e) {
System.err.println(e);
}
return hokeemons;
}
public static String getBio(Hokeemon[] hokeemons) {
String s = "";
for (Hokeemon hokeemon : hokeemons) {
s += "I am " + hokeemon.getName() + ": Type " + hokeemon.getType() + ": Age=" + hokeemon.getAge()
+ ", I live in " + hokeemon.liveIn() + "\n";
s += "My friends are: ";
for (Hokeemon hokeemon2 : hokeemons) {
if (hokeemon.areFriends(hokeemon2) && !hokeemon.equals(hokeemon2)) {
s += (hokeemon2.getName() + " ");
}
}
s += "\n";
}
return s;
}
atOverride
public String toString() {
return "Name " + name + ": Type " + type + ": Age=" + age + "\n";
}
}
/*******************************HokeemonMain.java**************************/
import java.util.Arrays;
public class HokeemonMain {
public static void main(String[] args) {
Hokeemon[] hokeemons = Hokeemon.getData("data.txt");
System.out.println(Arrays.toString(hokeemons));
System.out.println(Hokeemon.getBio(hokeemons));
}
}
/**********************************data.txt********************/
Noddy Dwarf 4
Legolas Elf 77
Minerva Fairy 33
Samwise Hobbit 24
Merry Hobbit 29
Warhammer Dwarf 87
Ernedyll Elf 19
Frodo Hobbit 18