Подскажите пожалуйста, что не так?
package com.javarush.task.task17.task1710;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
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 String parserNameSex(String line, int i) {
Pattern wordP = Pattern.compile("\\b[А-Яа-я]+\\b");
Matcher wordСure = wordP.matcher(line);
int j = 1;
while (wordСure.find()) {
if (i == j) {
return wordСure.group();
}
if (i == j) {
return wordСure.group();
}
j++;
}
return line;
}
public static int parserId(String line) {
Pattern idP = Pattern.compile("\\b\\d+\\b");
Matcher idСure = idP.matcher(line);
while (idСure.find()) {
return Integer.parseInt(idСure.group());
}
return 0;
}
public static Date parserDate(String line) throws ParseException {
Pattern dateP = Pattern.compile("\\d\\d.\\d\\d.\\d\\d\\d\\d");
Matcher dateСure = dateP.matcher(line);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
while (dateСure.find()) {
return dateFormat.parse(dateСure.group());
}
return null;
}
public static void main(String[] args) throws IOException, ParseException {
//start here - начни тут
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
SimpleDateFormat datePrint = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
if (line.contains("-c")) {
if(parserNameSex(line, 2).equals("м")) {
allPeople.add(Person.createMale(parserNameSex(line, 1), parserDate(line)));
} else {
allPeople.add(Person.createFemale(parserNameSex(line, 1), parserDate(line)));
}
System.out.println(allPeople.size()-1);
}
if (line.contains("-u")) {
if(parserNameSex(line, 2).equals("м")) {
allPeople.set(parserId(line), Person.createMale(parserNameSex(line, 1), parserDate(line)));
} else {
allPeople.set(parserId(line), Person.createFemale(parserNameSex(line, 1), parserDate(line)));
}
}
if (line.contains("-d")) {
allPeople.remove(parserId(line));
}
if (line.contains("-i")) {
String name = allPeople.get(parserId(line)).getName();
String date = datePrint.format(allPeople.get(parserId(line)).getBirthDate());
String sex = null;
if (allPeople.get(parserId(line)).getSex()==Sex.MALE) {
sex = "м";
} else {
sex = "ж";
}
System.out.println(name + " " + sex + " " + date);
}
}
}