Ort Klasse erweitert, Ort Liste einlesen + Ort suche

OrtSuche
Caro 2024-06-15 14:49:04 +02:00
parent 937c75bc44
commit 0a4faef3d2
2 changed files with 78 additions and 3 deletions

View File

@ -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;
}
}

View File

@ -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<Ort> 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<Ort> 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]);
}
}