Как использовать BufferedReader для получения целых чисел из ввода и сохранения в качестве объектов - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь настроить программу, которая принимает пользовательский ввод (например, '12 20 14 23 08 19') и создает объекты класса 'Period (int start, int end)'. Я хотел бы сохранить эти объекты в массиве, чтобы я мог их перебирать.

import java.io.*;

class myCode
{
public static void main (String[] args) throws java.lang.Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input = br.readLine();
    System.out.println(input);

    //Array for storing period objects
    Period[] array = new Period[];

    //12 20 14 23 08 19

}

public static class Period{

    public int start;
    public int end;

    public Period(int start, int end) {
        this.start = start;
        this.end = end;
    }

    void printPeriod(){
        System.out.println("Start: " + start);
        System.out.println("End: " + start);
    }

  }
}

1 Ответ

2 голосов
/ 28 марта 2019

Один простой вариант - разделить входную строку на пробел, а затем заполнить массив точками:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] parts = input.split("\\s+");

Period[] array = new Period[parts.length / 2];
for (int i=0; i < parts.length; i=i+2) {
    int start = Integer.parseInt(parts[i]);
    int end = Integer.parseInt(parts[i+1]);
    Period period = new Period(start, end);

    array[i/2] = period;
}

Логика цикла for состоит в том, чтобы предпринимать шаги по два, и каждый шаг, для создания и заполнения объекта Period. Этот Period объект затем добавляется в массив в позиции i/2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...