[英]Adding values to an arraylist with setters
Arraylist 未采用正确的用户输入。 我希望数组存储学生的姓名,然后是 id,所以 output 应该是 [boris,22]。 但这是我收到的 output
输入学生姓名 boris
[鲍里斯]
输入 ID 22
[鲍里斯,鲍里斯]
我知道我可以为用户输入分配一个变量并将其添加到 ArrayList,但我想使用 setter 来执行此操作。
import java.util.ArrayList;
import java.util.Scanner;
import java.util.List;
public class studentTest {
public static void main(String[] args) {
ArrayList<Student> storage = new ArrayList<Student>();
Scanner input = new Scanner(System.in);
Student obj3 = new Student();
System.out.print("Enter Student name ");
obj3.setName(input.nextLine());
storage.add(obj3);
System.out.print(storage);
System.out.print("Enter ID ");
obj3.setID(input.nextInt());
storage.add(obj3);
System.out.print(storage);
}
}
public class Student {
private String name;
private int ID;
private double grade;
private int test;
private int NUM_Tests;
public Student() {
name = "unassigned";
ID = 0;
grade = 0;
test = 0;
NUM_Tests = 0;
}
public void setName(String N) {
name = N;
}
public String getName() {
return name;
}
public void setID(int I) {
ID = I;
}
public int getID() {
return ID;
}
public String toString() {
return String.format(name,ID);
}
}
你的代码是这样的:
import java.util.ArrayList;
import java.util.Scanner;
import java.util.List;
public class studentTest {
public static void main(String[] args) {
List<Student> storage = new ArrayList<>();
Scanner input = new Scanner(System.in);
Student student;
System.out.println("Create student. Type 0 to exit!");
while(input.nextLine() != "0") {
student = new Student();
System.out.print("Enter the name: ");
student.setName(input.nextLine());
System.out.print("Enter ID: ");
student.setID(input.nextInt());
storage.add(student);
}
for (Student s: storage) {
System.out.print( s.toString() );
}
}
}
public class Student {
private String name;
private int ID;
private double grade;
private int test;
private int NUM_Tests;
//Constructor
public Student() {
name = "unassigned";
ID = 0;
grade = 0;
test = 0;
NUM_Tests = 0;
}
//Getter and Setter
//.....
//.....
public String toString() {
String s = "Student info ----\n" +
"Name: " + this.name + "\n" +
"ID: " + this.ID + "\n" +
"---------------\n";
return s;
}
}
使用此代码,您可以在List
中插入多个学生。 如果要停止创建用户,请键入0
。 之后,所有学生都将以时尚的风格展示。
在学生 class 中更改为字符串: return String.format(name,ID);
应该是return String.format("%s %d", name, ID);
并删除导致重复的第一个storage.add(obj3)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.