Я надеюсь кому-нибудь хватит сил - найти здесь ошибку
3ий час пытаюсь ее найти..
но тестовый вывод говорит что все работает по заданию..🥴
package com.javarush.task.task17.task1710;
import java.io.BufferedReader;
import java.io.InputStreamReader;
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) {
//start here - начни тут
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
SimpleDateFormat dateFormat1 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
//разбиваю строку на массив подстрок
String[] person = reader.readLine().split(" ");
int id;
switch (person[0].charAt(1) + ""){
case "c"://проверяю полное имя или нет - сравнивая элемент массива после парсинга строки
//где может находиться Имя или Пол человека (Имя может состоять как из фамилии так и из фамилии + имя)
if (person[2].equals("м") || person[2].equals("ж")) {
if (person[2].equals("м")) {
allPeople.add(Person.createMale(person[1], dateFormat.parse(person[3])));
} else {
allPeople.add(Person.createFemale(person[1], dateFormat.parse(person[3])));
}
}else {
if (person[3].equals("м")) {
allPeople.add(Person.createMale(person[1] + " " + person[2], dateFormat.parse(person[4])));
} else {
allPeople.add(Person.createFemale(person[1] + " " + person[2], dateFormat.parse(person[4])));
}
}
System.out.println(allPeople.size() - 1);
break;
case "u": //проверяю полное имя или нет - сравнивая элемент массива после парсинга строки
//где может находиться Имя или Пол человека
id = Integer.parseInt(person[1]);
if (person[3].equals("м") || person[3].equals("ж")) {
allPeople.get(id).setName(person[2]);
if (person[3].equals("м"))
allPeople.get(id).setSex(Sex.MALE);
else if (person[3].equals("ж"))
allPeople.get(id).setSex(Sex.FEMALE);
allPeople.get(id).setBirthDate(dateFormat.parse(person[4]));
}else {
allPeople.get(id).setName(person[2] + " " + person[3]);
if (person[4].equals("м"))
allPeople.get(id).setSex(Sex.MALE);
else if (person[4].equals("ж"))
allPeople.get(id).setSex(Sex.FEMALE);
allPeople.get(id).setBirthDate(dateFormat.parse(person[5]));
}
break;
case "d":
id = Integer.parseInt(person[1]);
allPeople.get(id).setName(null);
allPeople.get(id).setSex(null);
allPeople.get(id).setBirthDate(null);
break;
case "i":
id = Integer.parseInt(person[1]);
System.out.print(String.format("%s ", allPeople.get(id).getName()));
if(allPeople.get(id).getSex() == Sex.MALE)
System.out.print("м ");
else if (allPeople.get(id).getSex() == Sex.FEMALE)
System.out.print("ж ");
System.out.println(dateFormat1.format(allPeople.get(id).getBirthDate()));
break;
}
}catch (Exception e){
}
/*System.out.println("-------<<<<-------тестовый вывод------->>>>---------");
for (Person person : allPeople){
System.out.println(person);
}*/
}
}