Brauche dringend hilfe!

vespasommer

Mitglied
Hallo :bahnhof:


also ich bin absolute java anfängerin habe aber ein kleineS Problem, dass ich auf keinen Fall selber lösen kann.

Vielleicht kann mir einer von euch schnell helfen. Und zwar habe ich folgende Aufgabe:

In der Klasse "Staedtesuche" sollen Sie die Methoden "sucheStaedte" und "leseDatei" so ausfüllen, dass die Methode main funktioniert.

Das Programm soll zuerst die Textdatei in eine Variable vom Typ ArrayList<Stadt> einlesen (jede Zeile ist eine Stadt) und anschließend die Stadt suchen, die der Methode "sucheStaedte" als Parameter übergeben wurde. Bei erfolgreicher Suche soll der Text "gefunden" und bei nicht erfolgreicher Suche "nicht gefunden" auf der Console ausgegeben werden.

Die Methode "main" darf nicht verändert werden.

UND FOLGENDE QUELLTEXTE SIND NOCH BEIGEFÜGT:

KLlasse Stadt:

Java:
public class Stadt {
	String name;
	
	public Stadt(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}
}
Klasse Staedtenamen:

Java:
import java.io.IOException;
import java.util.ArrayList;


public class Staedtesuche {
	ArrayList<Stadt> staedte = new ArrayList<Stadt>();

	public static void main(String[] args) throws IOException {
		Staedtesuche suche = new Staedtesuche();
		
		suche.leseDatei();
		suche.sucheStaedte(new Stadt("Heilbronn"));
	}

	private void sucheStaedte(Stadt stadt) {
		// TODO Auto-generated method stub
		
	}

	private void leseDatei() throws IOException {
		// TODO Auto-generated method stub
		
	}

}

wenn mir einer von euch zeigen könnte wie ich das am besten mache und mir vielleicht den fertigen text zeigen.


Vielen Dank, euere Vespina.
 
Zuletzt bearbeitet von einem Moderator:

njans

Top Contributor
Also wenn du jemanden suchst, der dir das Programm schreibt und dann erklärt, dann bist du wohl in der Jobbörse besser aufgehoben. Generell ist dieser Bereich des Forums da, um Leuten zu helfen, nicht ihnen die Arbeit abzunehmen.

Wenn du Ansätze gemacht hast und nicht mehr weiter weißt, wenn dein geschriebener Code nicht so funktioniert wie gewollt, dann bist du hier richtig.
 

HimBromBeere

Top Contributor
Also mal ehrlich... den "fertigen TExt" wirst du hier nicht finden... bestenfalls Anregungen, was du tun könntest.

Btw: schreib deinen Code doch mal bitte in anständige JAVA-Tags und füge ein paar Zeilenumbrüche ein



EDIT: hat sich erledigt..
 

vespasommer

Mitglied
Geht ja nicht darum mir die arbeit abzunehmen, stehe einfach bisschen unter druck und muss abliefern, kenne mich aber wie gesagt nicht aus.

naja,..
 

HimBromBeere

Top Contributor
Tut man auch, aber wie du gesagt heast: "helfen" und nicht "die Arbeit abnehmen"...


Schau dir erstmal die Datei Städte an, welche Variablen sind da denn außer einem Namen drin, die du einlesen müsstest? Davon abhängig musst du deine Klasse Stadt um die jeweiligen Attribute erweitern.
 

vespasommer

Mitglied
Sind lediglich Städtenamen drin, zeilenweise aufgeführt. ja und da hakt es ja ich weiss nicht um was ich erweitern muss.
ich brauch erst etwas um die namen einzulesen und danach eine funktion um die städte zu suchen.
 

L-ectron-X

Gesperrter Benutzer
Das Problem fängt doch schon bei der Textdatei an. Wie sieht die denn aus?
Das Auslesen der Datei muss nämlich ihrer Struktur angepasst werden.
 

L-ectron-X

Gesperrter Benutzer
Die Datei kann man bspw. mit [JAPI]Scanner[/JAPI] einlesen.
Eine Liste kann man mit einer for-Schleife durchsuchen.
Eine Bedingung abklopfen kann man mit einer if-Abfrage.
 

njans

Top Contributor
Nun lesen einer Datei kann man mit:
Java:
BufferedReader reader = new BufferedReader(new FileReader(new File("C:/whatever/myFile.txt")));
machen.
Anschließend ließt man mit reader.readLine() immer den nächsten String (bis zum Zeilenumbruch) und erhält diesen als Rückgabewert. Das macht man generell so lange, bis der Rückgabewert null ist, dann ist die Datei zuende gelesen.
 

njans

Top Contributor
"JFileChooser" ist eine Java Klasse, welche dir Erlaubt mittels einer grafischen Oberfläche einen Dialog zu erstellen, der den Nutzer eine Datei zum Speichen/öffnen aussuchen lässt.
 

Landei

Top Contributor
[c]sucheStaedte[/c] ist billig:

Java:
    private void sucheStaedte(Stadt stadt) {
        if(staedte.contains(stadt)) {
            System.out.println("gefunden");
        } else {
            System.out.println("nicht gefunden");
        }
    }
 

njans

Top Contributor
Hmm wenn man contains nutzen will, dann sollte auch schon equals der Klasse Stadt überschreiben, sonst wird da wohl nie irgendeine Stadt gefunden.
 

L-ectron-X

Gesperrter Benutzer
Wollte ich auch meinen.
Wenn man nicht contains() nutzen möchte, kann man die Liste auch durchsuchen:
Java:
    private void sucheStaedte(Stadt stadt) {
        for(int i = 0, j = staedte.size(); i < j; i++) {
            Stadt eineStadt = staedte.get(i); //Objekt an Index-Position i aus der ArrayList auslesen
            String stadtName = eineStadt.getName(); //Namen der Stadt holen
            if(stadtName.equals(stadt.getName())) { //ausgelesenen String mit dem Inhalt/Namen des übergebenen Objektes vergleichen
                System.out.println("gefunden");
                return;  //nach Finden abbrechen, keine weiteren (doppelten) Einträge suchen
            }
        }
        System.out.println("nicht gefunden");
    }
 

Neue Themen


Oben