Не проходит -c .. Не принимает никакие кирилические символы в аргументах.. не могу понять как заставить кушать, кодировку может где поменять?
package com.javarush.task.task17.task1710;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<Person>();
static {
//System.getProperty("file.encoding","UTF-8");
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
//String[] args = new String[args.length];
//System.arraycopy(args,0,args,0,args.length);
switch (args[0]) {
case "-c":// adding Person to the list========================================
try {
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
date = dateFormat.parse(args[3]);
Person newPerson;
if (args[2].equals("м")){//creating Person and adding to the list;
newPerson = Person.createMale(args[1],date);
}else if (args[2].equals("ж")){
newPerson = Person.createFemale(args[1],date);
}else {
throw new Exception();
}
allPeople.add(newPerson);
System.out.println(allPeople.indexOf(newPerson));
} catch (Exception e) {
erMessage();
}
break;
case "-u":// updatign Persont information in the list;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyy", Locale.ENGLISH);
Date date = dateFormat.parse(args[4]);
//System.out.println(date.getTime());
Person person = allPeople.get(Integer.parseInt(args[1]));
person.setName(args[2]);
person.setBirthDate(date);
if (args[3].equals("м")){
person.setSex(Sex.MALE);
}else if (args[3].equals("ж")){
person.setSex(Sex.FEMALE);
}else {
throw new Exception();
}
} catch (Exception e) {
erMessage();
}
break;
case "-d":// deleting Person fromm the list;
try {
Integer id = Integer.parseInt(args[1]);
Person person = allPeople.get(id);
person.setName(null);
person.setSex(null);
person.setBirthDate(null);
} catch (NumberFormatException e) {
erMessage();
}
break;
case "-i"://Priting Person's information with id: name sex (м/ж) bd (формат 15-Apr-1990)
try {
Person person = allPeople.get(Integer.parseInt(args[1]));
DateFormat dateFormat = new SimpleDateFormat("MMM");
String monthName = dateFormat.format(person.getBirthDate());
String sexPersonString = person.getSex().equals(Sex.FEMALE)?"ж":"м";
System.out.println(person.getName()+" "
+ sexPersonString + " "
+ person.getBirthDate().getDate()+ "-" + monthName + "-"
+ (person.getBirthDate().getYear()+1900)
);
} catch (Exception e) {
erMessage();
}
System.out.println();
break;
default:
erMessage();
break;
}
/*System.out.println(Arrays.toString(args));
System.out.println(Arrays.toString(allPeople.toArray()));
System.out.println(Arrays.toString(args));*/
}
public static void erMessage() {
System.out.println("Not right parameters");
}
}