Хранение нескольких пользовательских входов в несколько отдельных массивов - PullRequest
0 голосов
/ 10 апреля 2019

Я Крайне плохо знаком с программированием.Я пытаюсь написать программу, которая позволяет пользователям записываться на курс обучения в колледже / университете.Я хотел бы, чтобы каждый курс был разделен в своем собственном массиве и разделен пробелами.

Например: ENG 105 A 3 (массив 1) MAT 102 A 4 (массив 2) и т. Д. ...

Кажется, что входные данные хранятся в одном массиве.

Было бы замечательно, если бы мне не пришлось использовать счетчик, и программа могла бы двигаться дальше, когда пользователи закончили ввод своих курсов.

import java.util.Scanner;

public class Tester{

public static void main(String[] args) {

 int length;
 Scanner input = new Scanner(System.in);

 System.out.println("How many courses did you complete at your college / university?: ");
 length = input.nextInt();  

 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.next();   
 }

 input.close();

}

}

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Необходимо исправить двумя пунктами: обработать данные (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

}
0 голосов
/ 11 апреля 2019

Чтобы добиться того, чего вы хотите, что-то подобное будет работать:

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(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...