Всем привет! Не проходит по пунктам
Я проверяю все норм. С какими параметрами и их количеством запускает валидатор, он не дает увидеть. В чем беда?
package com.javarush.task.task17.task1711;
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 2
*/
public class Solution {
public static volatile 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 ParseException {
//start here - начни тут
//-c ivanov м 15/04/2021 petrov ж 25/05/2020
//-u id1 ivanov м 15/04/2021 id2 petrov Bffd ж 25/05/2020
//-d id1 id2
//-i id1 id2
String parameter = args[0];
switch (args[0]){
case "-c":synchronized (allPeople){
AddPeople (args);
break;
}
case "-u": synchronized (allPeople){
UpdatePerson(args);
break;
}
case "-d":synchronized (allPeople){
deletePerson(args);
break;
}
case "-i": synchronized (allPeople){
showInfo(args);
break;
}
}
}
private static void showInfo(String[] args) {
for (int i = 1; i < args.length; i++){
int id = Integer.parseInt(args [i].substring(2)) - 1;
System.out.println(allPeople.get(id));
}
}
private static void deletePerson(String[] args) {
for (int i = 1; i < args.length; i++){
int id = Integer.parseInt(args [i].substring(2)) - 1;
Person person = allPeople.get(id);
person.setName(null);
person.setSex(null);
person.setBirthDate(null);
}
}
private static void UpdatePerson(String[] args) {
List<String> personString = new ArrayList<>();
StringBuilder personBuilder = new StringBuilder();
for (int i = 1; i < args.length; i++) {
if (args[i].matches("id\\d")) {
if (i != 1) {
personString.add(personBuilder.toString().trim());
}
personBuilder = new StringBuilder();
}
personBuilder.append(args[i]).append(" ");
}
personString.add(personBuilder.toString().trim());
for (String s: personString){
String bDate = s.substring(s.length() - 11).trim();
String sex = s.toLowerCase().substring(s.length() - 13, s.length() - 11).trim();
String name = s.substring(4,s.length() - 13).trim();
int index = Integer.parseInt(String.valueOf(s.charAt(2)));
Date date = null;
try {
date = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(bDate);
} catch (ParseException e) {
e.printStackTrace();
}
Sex personSex = sex.equalsIgnoreCase("м") ? Sex.MALE : Sex.FEMALE;
Person element = allPeople.get(index - 1);
element.setName(name);
element.setBirthDate(date);
element.setSex(personSex);
}
}
private static void AddPeople(String[] args) throws ParseException {
List<String> person = new ArrayList<>();
StringBuilder newPerson = new StringBuilder();
for (int i = 1; args.length > i; i++ ){
if (args [i].matches("\\d\\d/\\d\\d/\\d\\d\\d\\d")) {
newPerson.append(args[i]);
person.add(newPerson.toString());
newPerson = new StringBuilder();
} else {
newPerson.append(args[i]).append(" ");
}
}
Person person1;
for (String s: person){
String bDate = s.substring(s.length() - 11).trim();
String sex = s.toLowerCase().substring(s.length() - 13, s.length() - 11).trim();
String name = s.substring(0,s.length() - 13).trim();
Date date = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(bDate);
Sex personSex = sex.equalsIgnoreCase("м") ? Sex.MALE : Sex.FEMALE;
if (personSex.equals(Sex.MALE)){
person1= Person.createMale(name,date);
allPeople.add(person1);
} else {
person1= Person.createFemale(name,date);
allPeople.add(person1);
}
System.out.println(allPeople.indexOf(person1));
}
}
}