我正在嘗試製作一個幻想足球選秀節目。我遇到困難的第一步是將數據正確讀入List。我想逐行掃描數據。我創建了一個設置每個角色名稱的循環,然後繼續添加所有具有該角色的人員,直到「-----」顯示在一行中。然後,該角色被添加到角色列表中。我相信我的循環是完全正確的,但是,我不知道如何正確工作我的Person構造函數,以便它包含我無法用Person類中的setData方法實現的等級,名稱和來源。我仍然是編程初學者,我想知道我是否錯過了一些東西。如何在沒有構造函數參數的情況下添加一個類的實例?
數據文件
組長
1超人DC
2美國隊長驚奇
3 X教授驚奇
4所述的琵嘴鴨推理男性
布朗
1廢船驚奇
2狼獾驚奇
3怪驚奇
4野獸驚奇
5托爾驚奇
6先生狂怒推理男性
7不可思議的皮克斯先生
...等等
主類
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class FantasyTeamDraft {
/**
* Joseph Simmons
* CPS 181
* February 6, 2013
*/
public static void main(String[] args) throws IOException{
Scanner scan = new Scanner (System.in);
System.out.println("Enter the name and location of the file wanted for the draft: ");
File draftData = new File (scan.next());
Scanner scanData = new Scanner(draftData);
List <Role> listOfRoles = new ArrayList <Role>();
while (scanData.hasNext()) {
String line = scanData.nextLine();
if (!isInteger (line)) {
Role role = new Role();
role.setRoleName(line);
String personLine = scanData.nextLine();
while (isInteger(personLine)){
Person person = new Person();
person.setData(personLine);
role.addPerson(person);
}
listOfRoles.add(role);
}
}
}
public static boolean isInteger (String line) {
try {
Integer.parseInt(line.split("\t") [0]);
} catch (NumberFormatException e) {
return false;
}
return true;
}
}
Person類
import java.util.Scanner;
public class Person {
private int rank;
private String name;
private String origin;
public Person() {
}
public Person (int rank, String name, String origin) {
this.rank = rank;
this.name = name;
this.origin = origin;
}
public void setData (String line) {
String [] array = line.split("\t");
this.rank = Integer.parseInt(array [0]);
this.name = array [1];
this.origin = array [2];
}
}
角色類
import java.util.List;
import java.util.Scanner;
public class Role {
private String roleName = "";
private List <Person> listOfPeople;
public Role (String roleName) {
this.roleName = roleName;
}
public void setRoleName (String line) {
this.roleName = line;
}
public String getRoleName() {
return roleName;
}
public void addPerson (Person person) {
this.listOfPeople.add(person);
}
}
串,能得到任何特定的錯誤? – 2013-02-12 02:32:36