Array nach String durchsuchen und zurückgeben

maxbuch

Mitglied
Hallo!
Meine Aufgabe ist es ein Array mit Objekten vom Typ Account (Bankkonten) nach einem bestimmten Namen zu durchsuchen und diesen dann, sofern vorhanden, über return zurückzugeben.

Meine Frage: Wie muss der return Befehl lauten, damit das funktioniert?
Vielen Dank schonmal für Antworten! 🙂

Java:
public Account get(String name) {
       
        for(int i=0; i < list.length; i++){
            if(list[i].equals(name)){
            int position = i;
      
            }
        }
        return //NAME ;
    }
 
Wenn list ein Array mit Account-Objekten ist dann wird
Java:
if(list[i].equals(name))
schon mal nie wahr werden.
Jeder Account hat sicherlich einen Getter für den Namen mit welchem du den übergebenen Namen überprüfen musst.
Zurückgeben musst du das Bankkonto mit dem richtigen Namen an der richtigen Stelle. Hol dir über den Index i den Eintrag an der richtigen Stelle und gib diesen zurück.
 
Ja der Account hat einen Getter getName() für den Namen. Kannst du mir sagen wie der Vergleich von Getter und name lautet? Da komm ich nicht drauf.
 
Naja getName() wirft einen String zurück, auf diesen rufst du die equals-Methode auf und übergibst der Methode den namen der geprüft werden soll 😉
 
Abbruch Schleife -> Rückgabe Arrayposition
Oder direkt das Element an der aktuellen Position zurückgeben. So spart man sich das zstl. break 😉

@maxbuch
Du hast eine schleife die alle Elemente durchläuft. Außerdem prüfst du in der if-Abfrage ob der Name des aktuellen Elementes dem gesuchten Namen entspricht. Wenn dem so ist musst du nur das aktuelle Element zurückgeben. Wie man ein bestimmtes Element in einem array anspricht solltest du bereits wissen.
 
Jetzt bekomm ich noch den Fehler "i cannnot be resolved to a variable" aber das return muss an die Stelle..


Code:
public Account get(String name) {
        for (int i = 0; i < list.length; i++) {
            if (list[i].getName().equals(name)) {

                break;

            }

        }
        return list[i];

    }
}
 
@mrBrown
wenn ich es direkt an die if Abfrage packe meckert die Methode, dass sie kein return mehr hat.

Code:
public Account get(String name) {
        for (int i = 0; i < list.length; i++) {
            if (list[i].getName().equals(name)) {
                return list[i];
            }

        }

    }
 
Richtig - du solltest dir jetzt mal überlegen, in welchem Fall es kein return gibt, und wie du mit dem Fall umgehen musst 😉
 
naja ich brauche noch ein else für den Fall, dass der name nicht enthalten ist.. kannst du mir nen Tipp geben wie das lauten muss?.. ich komm da einfach nicht weiter. Kenn das nur für ne boolean Methode die true/false zurück gibt.
 
ich brauche noch ein else für den Fall, dass der name nicht enthalten ist

"else" brauchst du nicht. Du kannst einfach nach der for-Schleife ein "return" machen. Wenn in der for-Schleife kein passendes Element gefunden und returned wurde, dann gibt es keines und das abschließende return wird ausgeführt.

Aber wie mrBrown schon geschrieben hat, du musst dir überlegen, was du in einem solchen Fall zurückgeben willst oder ob du vielleicht mit einer exception darauf reagierst. Das hängt vom Kontext ab.
 

Zurück
Oben