Ich versuche, eine Klasse zu schreiben, die eine Textdatei analysiert, speichert die Informationen in einem Array basierend auf dem Jahr der Mitarbeiter beigetreten und erstellen Sie ein Mitarbeiter, Verkäufer oder Executive-Objekt basierend auf jeder Zeile. Mein Professor hat uns diese Zeile das Jahr zu analysierenVerwirrt über Parsing-Methode
while ((line = br.readLine()) != null)
{
int year = Integer.parseInt(line.substring(0,4));
Employee e = getEmployee(line);
}
Und diese Methode den Rest des Dokuments
public static Employee getEmployee(String line)
{
Employee e= new Employee()
String[] splitWithComma = line.split(",");
String first = splitWithComma[0];
String[] firstSplit = first.split(" ");
String second = splitWithComma[1];
String[] secondSplit = second.split(" ");
String third = splitWithComma[2];
String[] thirdSplit = third.split(" ");
String fourth = splitWithComma[3];
String[] fourthSplit = fourth.split(" ");
String fifth=splitWithComma[4];
String[] fifthSplit = fifth.split(" ");
}
Ich bin verwirrt über zu analysieren, wie ich das Employee-Objekt in der getEmployee Klasse initialisieren sollte und wenn ich alle meine Doppel in der währenden Methode analysieren muß, und wie die
tun Hier ist meine Textdatei
2014, Employee, John Baker, 15000
2014, Salesman, Amanda Stein, 30000, 1100000
2014, Executive, Jessica Kettner, 53
2015, Employee,Zach Edwards, 20000
2015, Salesman,Shelby Douglas, 45000, 2345
2015, Executive, Corey Matthews, 67000, 48
Meine Mitarbeiter Klasse
import java.util.*;
public class Employee
{
private String name;
private double monthlySalary;
public Employee(String name, double monthlySalary)
{
this.name=name;
this.monthlySalary=monthlySalary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(int MonthlySalary)
{
}
public double annualSalary()
{
return monthlySalary*12;
}
public String toString()
{
String str;
str="Name: "+name;
str+="\nMonthly Salary: "+monthlySalary;
return str;
}
}
Und mein Fahrer
import java.io.*;
import java.util.*;
public class employeeDriver
{
public static void main(String[] args)
{
String line;
String input;
Scanner readInput=null;
Scanner readFile = null;
BufferedReader br=null;
try
{
br = new BufferedReader(new FileReader("tester.txt"));
}
catch(FileNotFoundException e)
{
System.out.println("The file can't be opened");
System.exit(0);
}
try
{
while ((line = br.readLine()) != null)
{
int year = Integer.parseInt(line.substring(0,4));
Employee e = getEmployee(line);
}
}
catch (IOException ioe)
{
System.out.println("Can't read file");
}
finally
{
System.exit(0);
}
}
public static Employee getEmployee(String line)
{
Employee e= new Employee()
String[] splitWithComma = line.split(",");
String first = splitWithComma[0];
String[] firstSplit = first.split(" ");
String second = splitWithComma[1];
String[] secondSplit = second.split(" ");
String third = splitWithComma[2];
String[] thirdSplit = third.split(" ");
String fourth = splitWithComma[3];
String[] fourthSplit = fourth.split(" ");
String fifth=splitWithComma[4];
String[] fifthSplit = fifth.split(" ");
}
}
Lesen Sie die Hilfe zu ['string.split()'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split (java.lang.String)), könnte es helfen ... – Lucero
Ich verstehe, wie Split funktioniert, ich bin nur unsicher, wie die GetEmployee-Methode den Rest der Textdatei analysieren und wie es in meinem Employee-Objekt – WILLO567
'GetEmployee 'nur analysiert wird eine Zeile nach der anderen; Jede Zeile der Textdatei wird gelesen und dann mit ihr analysiert. Auch mein Kommentar zur Hilfe war, weil die Datensätze durch Kommas getrennt und nicht durch Leerzeichen getrennt sind. Wenn ich also den Code sah, den Sie gepostet hatten, hatte ich den Eindruck, dass es nicht klar war, wie es funktioniert. – Lucero