Hi,
ich will ein Telefonbuch als Übung schreiben, in dem einige Einträge gespeichert sind, und man eine einfach Suchen-Methode benutzen kann um Einträge herauszufinden. Es soll möglich sein, dass es mehrere Personen mit gleichem Namen gibt...Wenn ich das Programm aber laufen lasse gibt er mir die gleichen Einträge mehrmals aus...hat jemand eine Idee wieso?
Dankeschön !
ich will ein Telefonbuch als Übung schreiben, in dem einige Einträge gespeichert sind, und man eine einfach Suchen-Methode benutzen kann um Einträge herauszufinden. Es soll möglich sein, dass es mehrere Personen mit gleichem Namen gibt...Wenn ich das Programm aber laufen lasse gibt er mir die gleichen Einträge mehrmals aus...hat jemand eine Idee wieso?
Java:
import java.io.*;
class Telefoneintrag
{
private String nachname;
private String vorname;
private String nummer;
Telefoneintrag (String nachname, String vorname, String nummer)
{
this.nachname=nachname;
this.vorname=vorname;
this.nummer=nummer;
}
public String getNachname ()
{
return nachname;
}
public String getVorname ()
{
return vorname;
}
public String getNummer ()
{
return nummer;
}
}
class Telefonbuch
{
Telefoneintrag [] telefonb;
Telefoneintrag [] treffer;
Telefonbuch ()
{
telefonb = new Telefoneintrag [5];
treffer = new Telefoneintrag [5];
telefonb[0] = new Telefoneintrag ("Meier","Heinz","07865/3629");
telefonb[1] = new Telefoneintrag ("Rudolf","Ernst","09457/3920");
telefonb[2] = new Telefoneintrag ("Friedrich","Ottfried","08473/28304");
telefonb[3] = new Telefoneintrag ("Meier","Heinz","07493/3892");
}
Telefoneintrag [] suchen (String nname,String vname)
{
int j =0;
for (int i = 0 ; i < telefonb.length ; i++)
{
if (telefonb[i]!=null)
{
if (telefonb[i].getNachname().equalsIgnoreCase(nname) && telefonb[i].getVorname().equalsIgnoreCase(vname))
{
while (treffer[j]!=null&& j<4)
{
j++;
}
treffer[j]=telefonb[i];
}
}
}
return treffer;
}
}
public class Telefonbuchtester
{
public static void main (String [] args) throws IOException
{
String name = "Erhard";
String vorname = "Heinz";
Telefonbuch telb = new Telefonbuch ();
for (int i=0; i<telb.suchen(name,vorname).length;i++)
{
if (telb.suchen(name,vorname)[i]!=null)
{
System.out.println (telb.suchen(name,vorname)[i].getVorname()+ " " + telb.suchen(name,vorname)[i].getNachname()+ " hat die Nummer "+ telb.suchen(name,vorname)[i].getNummer());
}
}
}
Dankeschön !