Может считывать данные не нужно? Как тогда валидатор проверяет код?
package com.javarush.task.task17.task1710;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) throws IOException, ParseException {
//start here - начни тут
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String command = reader.readLine();
String[] info = command.split(" ");
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
if (command.startsWith("-c")) {
Date birthdate = dateFormat.parse(info[3]);
if (info[2].equals("м")) {
allPeople.add(Person.createMale(info[1], birthdate));
} else allPeople.add(Person.createFemale(info[1], birthdate));
System.out.println(allPeople.size() - 1);
} else if (command.startsWith("-u")) {
Date birthdate = dateFormat.parse(info[4]);
allPeople.remove(Integer.parseInt(info[1]));
if (info[3].equals("м")) {
allPeople.add(Integer.parseInt(info[1]), Person.createMale(info[2], birthdate));
} else allPeople.add(Integer.parseInt(info[1]), Person.createFemale(info[2], birthdate));
} else if (command.startsWith("-d")) {
Person p = allPeople.get(Integer.parseInt(info[1]));
p.setName(null);
p.setSex(null);
p.setBirthDate(null);
} else if (command.startsWith("-i")) {
SimpleDateFormat outDate = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
Person out = allPeople.get(Integer.parseInt(info[1]));
String age = out.getSex().equals(Sex.MALE) ? "м" : "ж";
System.out.println(out.getName() + " " + age + " " + outDate.format(out.getBirthDate()));
} else System.out.println("Wrong command");
}
}