Java 无法收集扫描仪数据
问题:如何收集用户输入的所有信息,将其存储到ArrayList中并 是否显示所有输入的答案?我应该输入六支球队的名字、胜利、分区等等,并用System.out.println将它们显示在一个表中;正如我在for循环结束时尝试的那样Java 无法收集扫描仪数据,java,inheritance,arraylist,polymorphism,Java,Inheritance,Arraylist,Polymorphism,问题:如何收集用户输入的所有信息,将其存储到ArrayList中并 是否显示所有输入的答案?我应该输入六支球队的名字、胜利、分区等等,并用System.out.println将它们显示在一个表中;正如我在for循环结束时尝试的那样 public class PlayoffSelectorClass extends Team { // main method public static void main(String[] args) { Team team1 = new T
public class PlayoffSelectorClass extends Team {
// main method
public static void main(String[] args) {
Team team1 = new Team();
Team team2 = new Team();
Team team3 = new Team();
Team team4 = new Team();
Team team5 = new Team();
Team team6 = new Team();
for (int i = 0; i < 6; i++) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter team name: ");
String name = input.nextLine();
System.out.println("\nPlease enter the city " + name + " played in: ");
String city = input.nextLine();
System.out.println("\nPlease enter the division " + name + " play in: ");
String division = input.nextLine();
System.out.println("\nPlease enter the number of wins " + name + " has: ");
Integer wins = input.nextInt();
System.out.println("\nPlease enter the number of losses " + name + " has: ");
Integer loses = input.nextInt();
if (i < 5) {
System.out.println("\nEnter your next team...\n");
}
team1.setTeamName(name);
team1.setCity(city);
team1.setDivision(division);
team1.setWins(wins);
team1.setLoses(loses);
}
System.out.println("East W L PCT");
System.out.println(team1.getTeamName() + " " + team1.getWins() + " " + team1.getLoses());
System.out.println(team1.getTeamName() + " " + team1.getWins() + " " + team1.getLoses());
}
}
如果你确定你想要的团队数量是6,那么声明一个数组,如
List<Team> teams = new ArrayList<Team>();
这应该是一个设计变更,您不应该保留第1组、第2组……等等
当你想保存数据的时候
Team team = null;
for (int i = 0; i < 6; i++) {
team = new Team();
System.out.println("Please enter team name: ");
String teamName = input.nextLine();
team.setTeamName(teamName);
... // Similarly the rest.
teams.add(team);
当您从控制台获取输入时,还需要进行一些附加检查。检查它是一个空白字符串还是一个输入。这些检查将使代码更无错误。如果为每个玩家显式声明一个变量,则很难将用户的输入存储到正确的变量中,除非您执行一些讨厌的操作,如ifi==3 team3.setNamename。最好创建一个数组列表teams=newarraylist,并在每个循环中创建一个新的团队对象teamteam=newteam;您将填充team.setNamename等。。在每次迭代结束时,此对象将添加到数组列表teams.addteam中。在所有六次迭代之后,您将拥有一个数组列表,其中包含用户创建的每个团队。现在,您可以通过以下方式遍历此列表:
for(Team team: teams) {
//do stuff with the team object, e.g.:
System.out.println(team.getName());
}
您可以使用这样的列表
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class PlayoffSelector {
static class Team {
private String teamName;
private String city;
private String division;
private Integer wins;
private Integer loses;
public void setTeamName(String teamName) {
this.teamName = teamName;
}
public String getTeamName() {
return teamName;
}
public void setCity(String city) {
this.city = city;
}
public String getCity() {
return city;
}
public void setDivision(String division) {
this.division = division;
}
public String getDivision() {
return division;
}
public void setWins(Integer wins) {
this.wins = wins;
}
public Integer getWins() {
return wins;
}
public void setLoses(Integer loses) {
this.loses = loses;
}
public Integer getLoses() {
return loses;
}
}
public static void main(String[] args) {
List<Team> teams = new ArrayList<>();
for (int i = 0; i < 2; i++) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter team name: ");
String name = input.nextLine();
System.out.println("\nPlease enter the city " + name + " played in: ");
String city = input.nextLine();
System.out.println("\nPlease enter the division " + name + " play in: ");
String division = input.nextLine();
System.out.println("\nPlease enter the number of wins " + name + " has: ");
Integer wins = input.nextInt();
System.out.println("\nPlease enter the number of losses " + name + " has: ");
Integer loses = input.nextInt();
if (i < 5) {
System.out.println("\nEnter your next team...\n");
}
Team team = new Team();
team.setTeamName(name);
team.setCity(city);
team.setDivision(division);
team.setWins(wins);
team.setLoses(loses);
teams.add(team);
}
System.out.println("East W L PCT");
for (Team team : teams) {
System.out.printf("%s\t%s\t%s\n",team.getTeamName(), team.getWins() , team.getLoses());
}
}
}