package assagment3;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
public class Person 
{
    String ime;
    String prezime;
    LocalDate datumRodjenja;
    String mestoRodjenja;
    Person p;

    public Person(String ime, String prezime, LocalDate datumRodjenja, String mestoRodjenja) 
    {
        this.ime = ime;
        this.prezime = prezime;
        this.datumRodjenja = datumRodjenja;
        this.mestoRodjenja = mestoRodjenja;
    }            

    @Override
    public String toString() 
    {   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy");
        return "Person{\n" + "ime=" + ime + ",\n prezime=" + prezime + ",\n datumRodjenja=" + formatter + ",\n mestoRodjenja=" + mestoRodjenja + '}';
    }   
}
package assagment3;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.lang.String;
import static java.lang.System.in;
public class Assagment3 
{
    public static void main(String[] args) 
    {
        ArrayList <Person> lista = null;
        String text  = "John.Davidson/05051988/Belgrade Michael.Barton/01011968/Krakov Ivan.Perkinson/23051986/Moscow";
        String [] tekst=text.split("[ ./]+");
        for(int i=0; i<tekst.length; i+=4)
        {
         String ime = tekst[i];
         String prezime = tekst[i+1];
         String datumRodjenja = tekst[i+2];
         String mestoRodjenja = tekst[i+3];
             System.out.println(" ");
        System.out.println(" Ime je: " + ime + "\n Prezime je: " + prezime +"\n Datum Rodjenja je: "+datumRodjenja+"\n Mesto Rodjenja: "+mestoRodjenja);
        }

   }   
}

 

Ispis treba da bude oblika:

John Davidson 05. May 1988. Belgrade

Michael Barton 01. Jan 1968. Krakov

Ivan Perkinson 23. May 1986. Moscow

 

Treba da imate dve klase:

  1. person – osoba (tip objekta koji se traži za manipulaciju): 4 polja, konstruktor i metoda toString();
  2. glavna – u njoj treba vršiti parsiranje početnog Stringa, ubacivanje osobe u listu i ispis te liste osoba.

Polje za datum rođenja u klasi Person (i njenom konstruktoru) mora da bude tipa LocalDate. Onda, u klasi Person treba vršiti konverziju datuma iz tipa LocalDate u String, a konverzija datuma iz Stringa u LocalDate treba da se vrši u glavnoj klasi.

Zapis menjao Ivica 12.02.2018.

zlocko86
11.02.2019
Одељци: Зид Питања и одговори Ивица zlocko86 | Кључне речи:
0

Коментари:

Нови одговор Нови коментар

Одговори:

Приказано 1-1 од 1 ставке.

Ово је задатак са ИТ Академије. Од студента се очекује да користи методу split класе String. Прво је потребно разбити стринг на делове одвојене спејсовима. Сваки такав део садржаће податке једне особе. Те податке је поново потребно разбити на делове који се налазе између косих црта (slash "/"). Име и презиме на сличан начин треба раздвојити на делове одвојене тачком. Први параметар функције split  није било какав текст, већ je регуларни израз. Регуларни изрази имају своја синтаксна правила и представљају својеврсни језик. Мој омиљени сајт за тестирање (и учење) регуларних израза је https://regex101.com/. Нажалост на овом сајту нема подршке за Јаву, тако да се могу очекивати мале разлике, али концепт је углавном исти код свих језика.

У овом одговору представићу методу која парсира стринг и враћа листу објеката. Решење подразумева напреднију употребу регуларних израза без коришћења функције split. Заинтересовани за часове програмирање могу ме контактирати путем мејла: lazarevic.ivica@gmail.com.

    private static ArrayList<Person> listaOsoba(String data)
    {
        ArrayList<Person> ret = new ArrayList<>();
        Pattern regex = Pattern.compile("(?<ime>\\w+)\\.(?<prezime>\\w+)/(?<datum>\\d+)/(?<mesto>\\w+)(?:\\s|$)");
        Matcher m = regex.matcher(data);
        while (m.find()) {
            LocalDate datum;
            datum = LocalDate.parse(m.group("datum"), DateTimeFormatter.ofPattern("ddMMyyyy"));
            Person p = new Person(m.group("ime"), m.group("prezime"), datum, m.group("mesto"));
            ret.add(p);
        }
        return ret;
    }

 

Ивица
12.02.2019
Одељци: Зид Питања и одговори Ивица | Кључне речи:
0

Коментари:

Нови коментар

©Библиотека++ 2019 Развој сајта Ивица Лазаревић