Bonjour,
J'arrive à ajouter des personnes sur la liste allPeople, et en retirer, tout en donnant une valeur null à l'élément de la liste concerné, à mettre un jour un élément de la liste, à afficher les paramètres des éléments de ma liste, saut pour un élément null.
Pourtant rien n'est validé. Même si ça fonctionne, cela ne semble pas être la bonne méthode à appliquer. Quelqu'un pourrait-il me mettre sur la bonne voie ?
Bon après-midi
package fr.codegym.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.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<>();
static {
allPeople.add(Person.createMale("Donald Chump", new Date())); // id=0
allPeople.add(Person.createMale("Larry Gates", new Date())); // id=1
}
public static void main(String[] args) throws IOException, ParseException {
BufferedReader lecteur = new BufferedReader(new InputStreamReader(System.in));
String arguments = "valeur";
SimpleDateFormat dateNaissance = new SimpleDateFormat("MM dd yyyy", Locale.ENGLISH);
SimpleDateFormat dateLue = new SimpleDateFormat("MMM dd yyyy", Locale.ENGLISH);
while(!(arguments = lecteur.readLine()).equals("")) {
String[] tableauArguments = arguments.split("\"");
if (tableauArguments.length == 2) {//Dans ce cas, ce tableau dispose d'une date de naissance
String[] tableauArguments1 = tableauArguments[0].split(" ");
//traitement de l'option -c
if (tableauArguments1[0].equals("-c") && (tableauArguments1.length == 3 || tableauArguments1.length == 4)) {
// S'il y a un nom et un prénom, la taille de tableauArguments1 est égale à 4, s'il n'y a qu'un nom, elle est égale à 3.
if (tableauArguments1[tableauArguments1.length - 1].equals("m")) {
if (tableauArguments1[2].equals("m")) {// Ici, il n'y a qu'un nom et pas de prénom
allPeople.add(Person.createMale(tableauArguments1[1], dateNaissance.parse(tableauArguments[1])));
} else {//Dans le cas où il y a un nom et un prénom
allPeople.add(Person.createMale(tableauArguments1[1] + " " + tableauArguments1[2], dateNaissance.parse(tableauArguments[1])));
}
}
if (tableauArguments1[tableauArguments1.length - 1].equals("f")) {
if (tableauArguments1[2].equals("f")) {// Il n'y a qu'un nom
allPeople.add(Person.createFemale(tableauArguments1[1], dateNaissance.parse(tableauArguments[1])));
} else {// Il y a un nom et un prénom.
allPeople.add(Person.createFemale(tableauArguments1[1] + " " + tableauArguments1[2], dateNaissance.parse(tableauArguments[1])));
}
}
System.out.println(allPeople.size() - 1);
//traitement de l'option -u
}if (tableauArguments1[0].equals("-u") && (tableauArguments1.length == 4 || tableauArguments1.length == 5)) {
//Avec l'option -u, la taille du tableau pourra etre de 4 ou de 5.
if (tableauArguments1[3].equals("m")) {
allPeople.set(Integer.parseInt(tableauArguments1[1]), Person.createMale(tableauArguments1[2], dateNaissance.parse(tableauArguments[1])));
} else if (tableauArguments1[3].equals("f")) {
allPeople.set(Integer.parseInt(tableauArguments1[1]), Person.createFemale(tableauArguments1[2], dateNaissance.parse(tableauArguments[1])));
} else if (tableauArguments1[4].equals("m")) {
allPeople.set(Integer.parseInt(tableauArguments1[1]), Person.createMale(tableauArguments1[2] + " " + tableauArguments1[3], dateNaissance.parse(tableauArguments[1])));
} else {
allPeople.set(Integer.parseInt(tableauArguments1[1]), Person.createFemale(tableauArguments1[2] + " " + tableauArguments1[3], dateNaissance.parse(tableauArguments[1])));
}
}
} if(tableauArguments.length == 1) {// Dans ce cas, tableauArguments ne dispose pas de date de naissance et seules les options -d et -i sont concernées.
String[] tableauArguments2 = arguments.split(" ");
//traitement de l'option -d
if (tableauArguments2[0].equals("-d") && tableauArguments2.length == 2) {
allPeople.set(Integer.parseInt(tableauArguments2[1]), null);
}
//traitement de l'option -i
if (tableauArguments2[0].equals("-i") && tableauArguments2.length == 2) {
try {
System.out.print(allPeople.get(Integer.parseInt(tableauArguments2[1])).getName() + " ");
if (allPeople.get(Integer.parseInt(tableauArguments2[1])).getSex() == Sex.MALE)
System.out.print("m ");
if (allPeople.get(Integer.parseInt(tableauArguments2[1])).getSex() == Sex.FEMALE)
System.out.print("f ");
System.out.println(dateLue.format(allPeople.get(Integer.parseInt(tableauArguments2[1])).getBirthDate().getTime()));
}catch(NullPointerException e) {
System.out.println(allPeople.get(Integer.parseInt(tableauArguments2[1])) + " " + allPeople.get(Integer.parseInt(tableauArguments2[1])) + " " + allPeople.get(Integer.parseInt(tableauArguments2[1])));
}
}
}
}
}
}