• ,

javarush.test.level17.lesson10.bonus01 - Видимо, проблема с кодировкой!

У меня вот не читает третий параметр «м». Записываю в Program arguments -c Миронов м 15/04/1990, вот он, третий параметр «м», но не читает, что-то с кодировкоий может… внизу справа поставил UTF-8. Ниже блок кода TESTING выдает вот такой результат:

2

-c
Миронов
м
15/04/1990

Иванов Иван м 10/03/2016
Петров Петр м 10/03/2016
Миронов ж 15/04/1990

где 2 — id, потом идет перечень записанных в строку параметров, а потом новый список людей, и как видите, Миронов поменял стать. Помогите понять почему не воспринимает символ!

Условие:

/* CRUD
CrUD — Create, Update, Delete
Программа запускается с одним из следующих наборов параметров:
-c name sex bd
-u id name sex bd
-d id
-i id
Значения параметров:
name — имя, String
sex — пол, «м» или «ж», одна буква
bd — дата рождения в следующем формате 15/04/1990
-c — добавляет человека с заданными параметрами в конец allPeople, выводит id (index) на экран
-u — обновляет данные человека с данным id
-d — производит логическое удаление человека с id
-i — выводит на экран информацию о человеке с id: name sex (м/ж) bd (формат 15-Apr-1990)

id соответствует индексу в списке
Все люди должны храниться в allPeople
Используйте Locale.ENGLISH в качестве второго параметра для SimpleDateFormat

Пример параметров: -c Миронов м 15/04/1990
*/

package com.javarush.test.level17.lesson10.bonus01;

import java.text.*;
import java.util.*;

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 {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);

        // -c - Create
        if (args[0].equals("-c")){
            Person person;
            String name = name(args);
            if (args[args.length - 2].equals('м')) person = Person.createMale(name, dateFormat.parse(args[args.length - 1]));
            else person = Person.createFemale(name, dateFormat.parse(args[args.length - 1]));
            allPeople.add(person);
            System.out.println(allPeople.indexOf(person));
            //**********************************************************************************************************

            // -u- Update
        } else if (args[0].equals("-u")){
            if (args[args.length - 2].equals('м')) {
                allPeople.get(Integer.parseInt(args[1])).setSex(Sex.MALE);
            } else {
                allPeople.get(Integer.parseInt(args[1])).setSex(Sex.FEMALE);
            }
            allPeople.get(Integer.parseInt(args[1])).setBirthDay(dateFormat.parse(args[args.length - 1]));
            //**********************************************************************************************************

            // -d - Delete
        } else if (args[0].equals("-d")){
            if (args.length != 2) return;
            allPeople.get(Integer.parseInt(args[1])).setBirthDay(null);
            //**********************************************************************************************************

            // -i- Information
        } else if (args[0].equals("-i")){
            dateFormat = new SimpleDateFormat("dd-MMM-YYYY", Locale.ENGLISH);
            allPeople.get(Integer.parseInt(args[1]));
            System.out.println(allPeople.get(Integer.parseInt(args[1])).getName()
                    + " " + (allPeople.get(Integer.parseInt(args[1])).getSex() == Sex.MALE ? 'м' : 'ж')
                    + " " + dateFormat.format(allPeople.get(Integer.parseInt(args[1])).getBirthDay()));
        }
        //**************************************************************************************************************

        // TESTING
        System.out.println();
        for (String s : args) {
            System.out.println(s);
        }

        System.out.println();
        for (Person p : allPeople) {
            System.out.println(p.getName() + " " + (p.getSex() == Sex.MALE ? 'м' : 'ж') + " " + dateFormat.format(p.getBirthDay()));
        }
        //**************************************************************************************************************
    }

    public static String name(String[] consoleArgs){
        String name = "";
        for (int i = 1; i <= consoleArgs.length - 3; i++) {
            name += consoleArgs[i];
            if (i == (consoleArgs.length - 3)) continue;
            name += " ";
        }
        return name;
    }
}