From 0a4faef3d27dc060b650492d42cb1da3608c4b2f Mon Sep 17 00:00:00 2001 From: Caro Date: Sat, 15 Jun 2024 14:49:04 +0200 Subject: [PATCH] Ort Klasse erweitert, Ort Liste einlesen + Ort suche --- TravelBuddyApp/src/main/java/domain/Ort.java | 28 ++++++++-- .../src/main/java/fassade/ReiseFassade.java | 53 +++++++++++++++++++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/TravelBuddyApp/src/main/java/domain/Ort.java b/TravelBuddyApp/src/main/java/domain/Ort.java index f04877a..96b3a17 100644 --- a/TravelBuddyApp/src/main/java/domain/Ort.java +++ b/TravelBuddyApp/src/main/java/domain/Ort.java @@ -1,20 +1,42 @@ package domain; +import java.util.Set; + public class Ort { - private String plz; + private int plz; private String name; + private double breitengrad; + private double längengrad; - public Ort(String plz, String name) { + public Ort(int plz, String name, double breitengrad, double längengrad) { this.plz = plz; this.name = name; + this.breitengrad = breitengrad; + this.längengrad = längengrad; } public String getWettervorhersage() { - return "Wettervorhersage"; } + + + public String getName() { + return name; + } + + public int getPLZ() { + return plz; + } + + public double getBreitengrad() { + return breitengrad; + } + + public double getLängengrad() { + return längengrad; + } } diff --git a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java index 3b00e6e..4e9f21c 100644 --- a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java +++ b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java @@ -1,5 +1,58 @@ package fassade; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.HashSet; +import java.util.Scanner; +import java.util.Set; + +import domain.Ort; +import ui.UserInterface; + public class ReiseFassade { + private Set orte; + + public ReiseFassade() throws FileNotFoundException { + orte = new HashSet<>(); + + orteLaden(); + } + + //lädt Datei aus rescources ein und speichert Orte in HashSet ab + private void orteLaden() throws FileNotFoundException { + + //UserInterface.class.getClass().getResourceAsStream("resources/PLZ.csv"); + Scanner sc = new Scanner(new File("resources/PLZ.csv")); + + int zähler = 0; + while (sc.hasNextLine()) { + String ort = sc.nextLine(); + + String[] spalten = ort.split(";"); + + orte.add(new Ort(Integer.parseInt(spalten[0]), spalten[1], Double.parseDouble(spalten[2]), Double.parseDouble(spalten[3]))); + + zähler++; + } + + System.out.println(zähler + "Orte geladen."); + } + + //gibt Trefferliste passend zum Suchbegriff zurück + public Ort[] sucheOrt(String suchbegriff) { + Set trefferliste = new HashSet<>(); + + //gibt alle Orte zurück + if(suchbegriff.equals("alle")) + trefferliste = orte; + else + //läuft über set orte + for(Ort o : orte) { + //fügt ort zur Trefferliste hinzu wenn der Suchbegriff im Namen ist und weniger als 8 Orte bereits drauf stehen + if(o.getName().contains(suchbegriff) && trefferliste.size()<8) + trefferliste.add(o); + } + return trefferliste.toArray(new Ort[0]); + } }