Поломайте пожалуйста, не пойму почему компилятор не пускает.
Пробовал с входящими:
Иванов Иван Иванович 31 12 1987
Вася 15 5 2013
Анна-Надежда 20 04 1995
Грозная Ирина-Марина Васильевна 19 06 1990
Вывод в консоль:
Иванов Иван Иванович Thu Dec 31 00:00:00 EET 1987
Вася Wed May 15 00:00:00 EEST 2013
Анна-Надежда Thu Apr 20 00:00:00 EEST 1995
Грозная Ирина-Марина Васильевна Tue Jun 19 00:00:00 EEST 1990
Ума не приложу где лажа) заранее спасибо.
package com.javarush.task.task19.task1921;
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/*
Хуан Хуанович
*/
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<Person>();
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
HashMap<String,Double> nameValueMap = new HashMap<>();
String text = "";
while (reader.ready()){
text+=reader.readLine()+"\n";
}
reader.close();
String[] strings = text.split("\\s+");
String name = "";
boolean b;
for (int i = 0; i < strings.length;) {
b=true;
while (b){
if(!isNumeric(strings[i])){
name+= strings[i]+" ";
i++;
}
else {
DateFormat df = new SimpleDateFormat("dd M yyyy");
Date bd = df.parse(strings[i]+" "+strings[i+1]+" "+strings[i+2]);
PEOPLE.add(new Person(name,bd));
i+=3;
name = "";
b=false;
}
}
}
for (Person p :
PEOPLE) {
System.out.println(p);
}
}
public static boolean isNumeric(String str)
{
try
{
int d = Integer.parseInt(str);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}
}