Zweidimensionales String-Array soll nach gezielt durchlaufen werden

jenny-birdy

Grünschnabel
Hallo,

ich stehe vor einem Problem, bei dem es sich um ein zweidimensionales Array handelt.
Hier die Aufgabenstellung:

Gegeben Sei ein zweidimensionales String-Array zur Speicherung von
Namen. Es ist bereits so geordnet, dass alle Namen, die mit dem gleichen
Anfangsbuchstaben beginnen, in einer Zeile stehen. Hier ein Beispiel:

String [][] nameArr = {
{„Martin“, „Monika“},
{„Sascha”},
{“Berta”, “Bastian”}
}
Schreiben Sie nun eine Methode boolean isNameContained(String name, String [][]
nameArr), welche überprüft, ob ein Name in dem Array enthalten ist. Nutzen Sie dabei die
besondere Struktur dieses Arrays und durchsuchen Sie nur die entsprechende Zeile. Um den
ersten Buchstaben eines Wortes zu ermitteln, sollten Sie die Methode char charAt(int index)
der Klasse String verwenden.


Kann mir jemand bei diesem Problem helfen. Wie schaffe ich es, dass nur die entsprechende Zeile durchsucht wird

Vielen Dank schon mal für eure Hilfe.
 
Also ein Array wird immer wie folgt angesprochen:

Java:
nameArr[zeile][spalte]

Also baust du eine Schleife, welche jede Zeile durchsucht (Achtung, die erste Zeile hat den Index 0, die Zweite 1 etc.)

Bei jedem Schleifendurchlauf kannst du nun den ersten Namen auf den Anfangsbuchstaben überprüfen. Auch die erste Spalte und der erste Buchstabe haben den Index 0.

Java:
//<<A>>
//TODO: Schleife um die If-Abfrage, die jede Zeile durchläuft
if(/*TODO: Vergleiche Anfangsbuchstaben des gesuchten Namens mit dem Anfangsbuchstaben des ersten Wortes in der Zeile*/)
{
// TODO: next step (B)
}


Hat er nun eine Übereinstimmung gefunden so baust du eine weitere Schleife innerhalb der If-Abfrage, welche diesmal nicht über die Zeilen, sondern über die Spalten läuft. In jedem Schleifendurchlauf vergleichst du nun nicht mehr nur den Anfangsbuchstaben, sondern das gesamte Wort.

Java:
//<<B>>
//TODO: Schleife um die If-Abfrage, die jede Spalte durchläuft
if(/*TODO: Inhalt vom Feld, auf welches der Spalten- und Zeilenindex zeigt, mit dem gesuchten Namen vergleichen*/)
{
//TODO: Übereinstimmung kenntlich machen
}

Du musst es dir vorstellen wie eine Liste auf einem Blatt Papier (z.B. eine Teilnehmerliste). Du möchtest vielleicht suchen, ob der Teilnehmer zugesagt hat oder nicht. Du schaust dir dann nicht alle Teilnehmer und deren Status an, sondern suchst erst Zeile für Zeile, wo der Teilnehmer steht und erst, wenn du den Teilnehmer gefunden hast, schaust du nach rechts und siehst aha, er hat abgesagt.
 
Zuletzt bearbeitet:
Vielen Dank schon mal für die Hilfe.

Ich habe nun mit einer for-Schleife versucht, das Array zu durchlaufen, allerdings weiß ich nicht, wie ich konkret in der zweiten for-Schleife die Spalten anspreche, so dass diese durchsucht werden.
Könnte mir jemand den Code hierfür angeben?
 

Neue Beiträge

Zurück