String auf Gleichheit mit Arraystrings vergleichen

Mahlzeit123

Mitglied
Hallo.

Ich schreibe ein Array für einige Strings und deklariere einen String als Name:

Java:
private String[]namen={"Jörg","Andre","Tina"}
private String name;

Nun möchte ich mit einer Methode überprüfen ob ein übergebener String in diesem Array vorhanden ist:

Java:
private void Test(String nametest){
    
    for(int i=0;i<=2;i++){
        if(nametest.equals(namen[i])) { 
            nametest=name;
        }
    }
 
    
     if(name.equals("")){
         System.out.println("Ungültiger Name");
        }
}

Warum bekomme ich eine NullPointerException beder if-Anweisung innerhalb meiner for-Schleife?

MfG Mahlzeit123
 
Zuletzt bearbeitet:
Weil Dein Parameter nametest NULL ist?

Als kleiner Tipp. Hol doch gleich die Anzahl der Schleifendurchgänge aus dem Array mit namen.length() und schreibe keine fest codierte 2 darein.

Gruß

Claus
 
Falls das nicht dir Ursache ist, dann kann es auch an der Zeile 5 liegen. Dort überschreibst du deinen Suchstring. Möglicherweise mit null, falls "name" noch keinen Wert hat.
In Zeile 10 kommt dann der nächste Null-Pointer-Kandidat. Wenn du nichts gefunden hast, und "name" immer noch null ist, dann kracht es hier...
 
Hey, vielen Dank, der erste Fehler war im Prinzip einfach, dass ich name und nametest vertauscht hab. Andersrum klappts. Für den Fall, dass er mit keinen Namen findet, muss ich mir wohl aber was anderes einfallen lassen..
 
ein schnellerer weg ist es
Java:
boolean nameIn=false;
for( String name :namen){
      if( nameToTest.equals( name){
               nameIn =true;
               break;
      }
}
 

Zurück
Oben