Mario 34 4.5
Donkey Kong 15 5.7
Luigi 38 5.8
Princess Peach Toadstoll 25 5.2
A very easy question. You need to remember how to loop to read a file and, more importantly, that this data should go into a record or class. Since each row represents a person, a good programmer should initially default to thinking about each row as an object with various attributes.
The only tricky part in this example is the fact that a person's name could be any number of words. Thus, we have to look for the first integer before we can declare that the complete name has been found.
import java.io.*;
import java.util.Scanner;
public class Person {
private String name;
private int age;
private double height;
public Person (Scanner in){
name = "";
while (!in.hasNextInt()){
name += in.next() + " ";
}
age = in.nextInt();
height = in.nextDouble();
in.nextLine();
}
public String toString(){
return name + " " + age + " " + height;
}
public static void main (String[] args){
String filename = "people.txt";
try {
Scanner in = new Scanner(new File(filename));
while (in.hasNextLine()){
Person p = new Person(in);
System.out.println(p);
}
} catch (FileNotFoundException e){
System.out.println("Sorry, could not find file " + e);
}
}
}
No comments:
Post a Comment