CV11 - Zadání - 2
Regulární výrazy a práce s datumy
RegExp + Date
Z vašeho projektu z minulého cvičení nebo z projektu s řešením minulého cvičení (https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab11v2.git)
Použijte data z https://fakerapi.it/api/v2/persons?_quantity=20 a:
- Vytvořte třídu DataImporter a Person
- v metodě (veřejné statické) String downloadText() stáhněte data přímo v Javě pomocí třídy URL a její metody openStream()
- v metodě (veřejné statické) List<String> parseData(String data) pomocí regulárních výrazů získaný text rozdělte nejprve na části mezi znakem '{' a textem address, které neobsahují žádné znaky '{}'
- v metodě (veřejné statické) Person parsePerson(String personText) získaných textech pro jednu osobu, najděte, jméno, příjmení a datum narození. Opět použijte regulární výrazy a využijte skupin (group)
- v metodě osoby (veřejné) int getAge() U osob zjistěte věk
- v metodě osoby (veřejné) LocalDate getAge() U osob zjistěte kdy měli/budou mít 50. narozeniny.
- v metodě osoby (veřejné) long getDaysToBirthday() zjistěte počet dní zbývajících do nejbližších narozenin.
- Osoby uložte do DB, Jméno a příjmení použijte jako nick a věk bude zapsán do sloupce body.
URL url = new URI("https://fakerapi.it/api/v2/persons?_quantity=20").toURL();
try (InputStream is = url.openStream()) { ... }
Odevzdání
Řešení odevzdejte do systému Kelvin jako úlohu "Java 1 - 8. cvičení v1". Do systému nahrejde celý obsah složky src a soubor pom.xml. Pozor omezte velikost obrázků. Možná velikost uploudu do systému kelvin je omezena. Postupujte dle videa na DU02 k odevzdání v době 3. cvičení.
Následně bude projekt zkompilován a provedou se Unit Testy. Vzhledem k povaze projektu a prozatímnímu testovacímu využití systému Kelvin v předmětu Java 1 v případě selhání nezoufejte.
Jedná se o pomocný test, vše bude ještě hodnoceno ručně. Důležité je nahrát soubory aby bylo možno vše vyhodnotit a provést analýzu na plagiáty. Věřím, že je to je formalita a všichni z Vás tvoří vlastní kód.
Řešení
Řešení zadání najdete v gitu ve větvi solution https://gitlab.vsb.cz/jez04-vyuka/java1/labs/lab11v2/-/tree/solution?ref_type=heads