如何将字符串类型的用户输入添加到 Java 中的 ArrayList?
How do I add a User Input of type String to an ArrayList in Java?
我正在尝试制作一个课程注册系统,我的一个 类(课程)以课程属性(即课程编号、课程名称、教师、学生)为中心。我正在制作一个 ArrayList,以便管理员(用户类型之一)可以向课程添加尽可能多的讲师,因为 he/she 想要 - 我已经创建了一个 Scanner 和一个 String 变量以及所有内容,但是当我写.add 命令,Eclipse 突出显示“.add”并显示 "the method .add() is undefined for the type of scanner"。现在,我可以理解这一点,但我不知道如何解决它并且我尝试了很多想法。
方法如下:`
public static String Instructor(){
String courseInstructors;
System.out.println("Please add name(s) of course instructors.");
ArrayList<String> Instructors= new ArrayList<String>();
Scanner courseInst = new Scanner(System.in);
courseInstructors = courseInst.next();
//courseInst.add(courseInstructors);
for(String courseInstructors1 : Instructors) {
courseInstructors1 = courseInstructors;
courseInst.add(courseInstructors1);
}
return;
}`
请遵守 Java 命名约定,变量名使用小写 - instructors
而不是 Instructors
。
此外,您想要添加到数组列表中,因此请在
上调用 add()
instructors.add(courseInstructors1)
您可能还想考虑选择比 courseInstructors1
更好的变量命名,例如 courseInstructor
,因为您指的是所有 instructors
中的 instructor
。
同样在您的 for 循环中,您正在执行以下操作
for(String courseInstructors1 : Instructors) {
courseInstructors1 = courseInstructors;
courseInst.add(courseInstructors1);
}
这可以简化为
for(String courseInstructors1 : Instructors) {
courseInst.add(courseInstructors);
}
如果您查看简化,您会发现迭代 Instructors 在这里毫无意义,因为您没有使用 courseInstructors1 的内容。
我想了解你的循环是干什么用的。
如果您想从一个输入中获取多个讲师姓名,那么您需要这样的东西。
//get input
//"John Peggy Adam blah blah"
courseInstructors = courseInst.next();
//split the string by white space
String[] instArr = courseInstructors.split(" ");
//will give array of John, Peggy, Adam, blah, blah
然后执行 foreach 循环将它们添加到列表中。
for(String inst: instArr){
instructors.add(inst);
}
否则我会建议您这样做,这样您就不必担心拆分名称等问题。
courseInstructor = courseInst.nextLine();
while(!courseInstructor.equals("done"){
//add name to list of instructors.
instructors.add(courseInstructor);
//get next name.
courseInstructor = courseInt.nextLin();
//if the user types done, it will break the loop.
//otherwise come back around and add it and get next input.
}
我正在尝试制作一个课程注册系统,我的一个 类(课程)以课程属性(即课程编号、课程名称、教师、学生)为中心。我正在制作一个 ArrayList,以便管理员(用户类型之一)可以向课程添加尽可能多的讲师,因为 he/she 想要 - 我已经创建了一个 Scanner 和一个 String 变量以及所有内容,但是当我写.add 命令,Eclipse 突出显示“.add”并显示 "the method .add() is undefined for the type of scanner"。现在,我可以理解这一点,但我不知道如何解决它并且我尝试了很多想法。
方法如下:`
public static String Instructor(){
String courseInstructors;
System.out.println("Please add name(s) of course instructors.");
ArrayList<String> Instructors= new ArrayList<String>();
Scanner courseInst = new Scanner(System.in);
courseInstructors = courseInst.next();
//courseInst.add(courseInstructors);
for(String courseInstructors1 : Instructors) {
courseInstructors1 = courseInstructors;
courseInst.add(courseInstructors1);
}
return;
}`
请遵守 Java 命名约定,变量名使用小写 - instructors
而不是 Instructors
。
此外,您想要添加到数组列表中,因此请在
上调用add()
instructors.add(courseInstructors1)
您可能还想考虑选择比 courseInstructors1
更好的变量命名,例如 courseInstructor
,因为您指的是所有 instructors
中的 instructor
。
同样在您的 for 循环中,您正在执行以下操作
for(String courseInstructors1 : Instructors) {
courseInstructors1 = courseInstructors;
courseInst.add(courseInstructors1);
}
这可以简化为
for(String courseInstructors1 : Instructors) {
courseInst.add(courseInstructors);
}
如果您查看简化,您会发现迭代 Instructors 在这里毫无意义,因为您没有使用 courseInstructors1 的内容。
我想了解你的循环是干什么用的。
如果您想从一个输入中获取多个讲师姓名,那么您需要这样的东西。
//get input
//"John Peggy Adam blah blah"
courseInstructors = courseInst.next();
//split the string by white space
String[] instArr = courseInstructors.split(" ");
//will give array of John, Peggy, Adam, blah, blah
然后执行 foreach 循环将它们添加到列表中。
for(String inst: instArr){
instructors.add(inst);
}
否则我会建议您这样做,这样您就不必担心拆分名称等问题。
courseInstructor = courseInst.nextLine();
while(!courseInstructor.equals("done"){
//add name to list of instructors.
instructors.add(courseInstructor);
//get next name.
courseInstructor = courseInt.nextLin();
//if the user types done, it will break the loop.
//otherwise come back around and add it and get next input.
}