Всем привет, у меня засада, понимаю, что не первый, сам просмотрел несколько других вопросов, уже разобрался со String[] args, логика работает, по крайней мере по моим тестовым дынным, Валидатор же говорит, точнее шепчет Не правииильноооооо!)
package com.javarush.task.task17.task1710;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
public static String[] args;
public static SimpleDateFormat inFormatter;
public static SimpleDateFormat outFormatter;
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
args = new String[5];
inFormatter = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
outFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
}
public static void parametrC(){
String name = args[1];
Date date = null;
try {
date = inFormatter.parse(args[3]);
}catch (ParseException e){
System.out.println(e.getStackTrace());
}
if (args[2].equals("м"))
allPeople.add(Person.createMale(name, date));
if (args[2].equals("ж"))
allPeople.add(Person.createFemale(name, date));
System.out.println(allPeople.size()-1);
}
public static void parametrU(){
Date date = null;
int index = Integer.parseInt(args[1]);
String name = args[2];
try {
date = inFormatter.parse(args[4]);
}catch (ParseException e){
System.out.println(e.getStackTrace());
}
if (args[3].equals("м"))
allPeople.set(index, Person.createMale(name, date));
if (args[3].equals("ж"))
allPeople.set(index, Person.createFemale(name, date));
//System.out.println("Данные ID: " + index + " изменены.");
}
public static void parametrD(){
Person person = Person.createFemale(null, null);
person.setSex(null);
int index = Integer.parseInt(args[1]);
allPeople.set(index, person);
}
public static void parametrI(){
int index = Integer.parseInt(args[1]);
Person person = allPeople.get(index);
String name = person.getName();
String sex = "";
if (person.getSex().equals(Sex.MALE))
sex = "м";
if (person.getSex().equals(Sex.FEMALE))
sex = "ж";
Date date = person.getBirthDate();
String bd = outFormatter.format(date);
System.out.println(name + " " + sex + " " + bd);
}
public static void main(String[] args) {
switch (Solution.args[0]){
case ("-c"):
parametrC();
break;
case ("-u"):
parametrU();
break;
case ("-d"):
parametrD();
break;
case ("-i"):
parametrI();
break;
}
}
}