Добрый день.
Уже замучался с этой задачей. По разному уже решаю, но последний пункт валидатор не принимает. Пишет "Убедись, что при параметре -i выводятся на экран данные человека.", хотя уже даже брал решения и других участников. Также пробовал проверять и IntelliJ IDEA и на сайте. Ошибка та же - валидатор не принимает. Но когда вывожу сам инфу - выводит.
package com.javarush.task.task17.task1710;
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<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, ArrayIndexOutOfBoundsException {
//start here - начни тут
Person tmpPerson;
if (args.length > 0) {
switch (args[0]) {
case ("-d"): {
tmpPerson = allPeople.get(Integer.parseInt(args[1]));
tmpPerson.setBirthDate(null);
tmpPerson.setName(null);
tmpPerson.setSex(null);
break;
}
case ("-і"): {
/*
tmpPerson = allPeople.get(Integer.parseInt(args[1]));
StringBuffer s = new StringBuffer();
s.append(tmpPerson.getName());
s.append(" ");
s.append(tmpPerson.getSex() == Sex.MALE ? "м" : "ж");
s.append(" ");
s.append(new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH).format(tmpPerson.getBirthDate()));
System.out.println(s);
break;
*/
Person person = allPeople.get(Integer.parseInt(args[1]));
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.out.print(person.getName());
System.out.print(" ");
if (Sex.MALE.equals(person.getSex())) {
System.out.print("м");
System.out.print(" ");
} else {
System.out.print("ж");
System.out.print(" ");
}
System.out.print(sdf.format(person.getBirthDate()));
break;
}
case ("-u"): {
tmpPerson = allPeople.get(Integer.parseInt(args[1]));
tmpPerson.setName(args[2]);
tmpPerson.setSex(args[3].equals("м") ? Sex.MALE : Sex.FEMALE);
tmpPerson.setBirthDate(new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(args[4]));
break;
}
case ("-c"): {
Date date = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(args[3]);
if (args[2].equals("м"))
tmpPerson = Person.createMale(args[1], date);
else
tmpPerson = Person.createFemale(args[1], date);
allPeople.add(tmpPerson);
System.out.println(allPeople.indexOf(tmpPerson));
break;
}
}
}
}
}