Java 将多个用户输入存储到多个单独的阵列中

Java 将多个用户输入存储到多个单独的阵列中,java,arrays,input,Java,Arrays,Input,我对编程非常陌生。我正在尝试编写一个程序,允许用户按课程输入他们的学院/大学成绩单。我希望每道菜都能在各自的阵列中分开,并用空格隔开 例如:ENG 105 A 3(阵列1)MAT 102 A 4(阵列2)等 似乎输入存储在一个数组中 如果我不必使用计数器,当用户输入完他们的课程后,程序就可以继续运行,那就太棒了 import java.util.Scanner; 公共类测试员{ 公共静态void main(字符串[]args){ 整数长度; 扫描仪输入=新扫描仪(System.in); Syst

我对编程非常陌生。我正在尝试编写一个程序,允许用户按课程输入他们的学院/大学成绩单。我希望每道菜都能在各自的阵列中分开,并用空格隔开

例如:ENG 105 A 3(阵列1)MAT 102 A 4(阵列2)等

似乎输入存储在一个数组中

如果我不必使用计数器,当用户输入完他们的课程后,程序就可以继续运行,那就太棒了

import java.util.Scanner;
公共类测试员{
公共静态void main(字符串[]args){
整数长度;
扫描仪输入=新扫描仪(System.in);
System.out.println(“您在学院/大学完成了多少门课程?:”;
length=input.nextInt();
字符串[]课程=新字符串[长度];
System.out.println(“在输入课程时遵循此模型:ENG 105 3 A”);
用于(int计数器=0;计数器<长度;计数器++){
System.out.println(“课程”+(计数器+1));
课程[计数器]=输入。下一步();
}
input.close();
}
}

要实现您想要的目标,像这样的方法是可行的:

String[][] courses = new String[length][];

System.out.println("Follow this model when entering your courses: ENG 105 3 A");

for (int counter = 0; counter < length; counter++){
    System.out.println("Course "+(counter+1));
    courses[counter] = input.nextLine().split("\\s+");   
}
另一方面,如果您希望在用户输入关键字时停止输入,则需要以下内容:

[["ENG","105","A","3"], ["MAT", "102", "A", "4"]] 
List<String[]> courses = new ArrayList<String[]>;

System.out.println("Follow this model when entering your courses: ENG 105 3 A");
String course = input.next();
while (!course.equals("end")){
    courses.add(course.split("\\s+"));  
    String course = input.nextLine(); 
}
List courses=new ArrayList;
System.out.println(“在输入课程时遵循此模型:ENG 105 3 A”);
字符串course=input.next();
而(!course.equals(“end”)){
courses.add(courses.split(\\s+));
字符串course=input.nextLine();
}

有两个问题需要解决:处理数据(ENG-105-3-A)和缓冲区

String[][] courses = new String[length][4];

System.out.println("Follow this model when entering your courses: ENG-105-3-A");

for(int counter = 0; counter < length; counter++){
    System.out.println("Course "+(counter+1));

    //Solution
    courses[counter] = input.next().split("-");  //data are separated by "-"

    input.nextLine(); //Cleanning buffer

}
String[]courses=newstring[length][4];
System.out.println(“输入课程时遵循此模式:ENG-105-3-A”);
用于(int计数器=0;计数器<长度;计数器++){
System.out.println(“课程”+(计数器+1));
//解决方案
courses[counter]=input.next().split(“-”)//数据以“-”分隔
input.nextLine();//清除缓冲区
}

这里似乎有两个问题。1.你想要三个阵列。2.您希望使用更好的方式来最终用户输入。我不确定1的好处是什么。您希望
String[]courses
成为
String[]courses
?要最终用户输入,您可以让用户输入
done
,然后检查该字符串以退出循环。我想我可以创建一个student对象,然后在该对象内有一个保存课程的arraylist。。。也许当我实现一个GUI时,我可以有一个“完整”按钮?另一个建议是使用对象列表:列表。。。其中Course是一个具有4个属性的类(例如,.ENG.105、a和3)。输入.next()后,应清除缓冲区。要使其正常工作,我需要在长度旁边的括号中添加4的数组大小。我还必须添加input.HasNextLine。谢谢!:)这是有效的。我想知道如何打印单门课程。例如,您输入的第三个课程是(在此处打印第三个输入的课程)。@AddiFamer,尝试打印课程:System.out.println(“\nEntered Stuff.”);int nbr=0;for(String[]cours:courses){System.out.println(“courses”+nbr++);for(String s:cours)System.out.print(s++);System.out.println();}(如果你不懂,就试试看)