Help, please
package com.codegym.task.task17.task1710;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;
import static java.util.Locale.ENGLISH;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<>();
public static ArrayList<String> list = new ArrayList<>();
public static String create = "-c Samantha Fox f 04 15 1990";
public static String update = "-u 0 John Rambo m 06 10 1987";
public static String delete = "-d 1";
public static String view = "-i 0";
static {
allPeople.add(Person.createMale("Donald Chump", new Date())); // id=0
allPeople.add(Person.createMale("Larry Gates", new Date())); // id=1
}
static List<Person> create(String s) {
elementsString(s);
String name = list.get(0);
SimpleDateFormat sdf = new SimpleDateFormat("MM dd yyyy");
try {
Date date1 = sdf.parse(list.get(2));
if(list.get(1).contains("m"))
allPeople.add(Person.createMale(name, date1));
else if(list.get(1).contains("f"))
allPeople.add(Person.createFemale(name, date1));
} catch (Exception e) {
e.getStackTrace();
}
System.out.println(allPeople.size()-1);
return allPeople;
}
static List<Person> update(String s) {
elementsString(s);
int id = Integer.parseInt(list.get(0));
Person person = allPeople.get(id);
String name = list.get(1);
person.setName(name);
if(list.get(2).contains("m")) person.setSex(Sex.MALE);
else if(list.get(2).contains("f")) person.setSex(Sex.FEMALE);
SimpleDateFormat sdf = new SimpleDateFormat("MM dd yyyy");
try {
Date date1 = sdf.parse(list.get(3));
person.setBirthDate(date1);
} catch (Exception e) {
e.getStackTrace();
}
return allPeople;
}
static void view(String s) {
elementsString(s);
int id = Integer.parseInt(list.get(0));
Person person = allPeople.get(id);
Date date = person.getBirthDate();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy", ENGLISH);
String d = sdf.format(date);
System.out.println(person.getName() + " " + person.getSex() + " " + d);
}
static boolean delete(String s) {
elementsString(s);
int id = Integer.parseInt(list.get(0));
allPeople.remove(id);
return true;
}
private static List<String> elementsString(String s) {
list = new ArrayList<>();
String regex = "[\\s\\p{Punct}]+";
Pattern pattern = Pattern.compile(regex);
String[] words = pattern.split(s);
String e = "";
for (int i = 2; i < words.length; i++) {
if(words.length == 3) {
list.add(words[i]);
}
else if(words.length == 8) {
e += words[i] + " ";
if (i == 2 || i == 5 || i == 6) continue;
else {
e = e.trim();
list.add(e);
e = "";
}
} else {
e += words[i] + " ";
if (i == 3 || i == 6 || i == 7) continue;
else {
e = e.trim();
list.add(e);
e = "";
}
}
}
return list;
}
public static void main(String[] args) {
create(create);
update(update);
delete(delete);
view(view);
}
}