Name im Array suchen

Lestas89

Bekanntes Mitglied
Ich will ein Programm schreiben, das nach Namen sucht die man vorher in ein Array abgelegt hat. Soweit bin ich gekommen:

Java:
public class Programm2{
   public static void main(String[]args){
     String eingabe2 = "";
     String eingabe = "";
     String n = javax.swing.JOptionPane.showInputDialog("Geben Sie die Länge des String-Arrays ein:");
     int zahl = Integer.parseInt(n);
    
     String [] feld;
     feld = new String [zahl];
    
     for(int i = 0; i < feld.length; i++){
       eingabe = javax.swing.JOptionPane.showInputDialog("Geben Sie " +zahl+" Wörter ein");
       feld[i] = eingabe;
       }
     eingabe2 = javax.swing.JOptionPane.showInputDialog("Geben Sie einen Namen ein, der im Array gesucht werden soll:");
      
     for(int j = 0; j < feld.length; j++){
       if(feld[j].equals(eingabe2)){
         javax.swing.JOptionPane.showMessageDialog(null," Der Name ist an der "+ (j+1) + "ten Stelle im Array vorhanden.");
       }
       }
    
   }
}

Nun will ich, dass das Programm mir mitteilt wenn ein Name nicht vorhanden ist. Ich habe das mit else if versucht doch dann kamen nur Fehler. Wie kann ich das bewerkstelligen?

Vielen Dank im Voraus.
 
Zuletzt bearbeitet von einem Moderator:

InfectedBytes

Top Contributor
um herauszufinden ob der name im gesamten array nicht vorhanden ist, musst du dieses logischerweise erst einmal komplett durchlaufen haben. Außerdem bietet es sich an, das ganze in eine methode auszulagern:
Java:
public int nameVorhanden(String[] namen, String gesucht) {
  for(...) {
     if(namen[i].equals(gesucht) return i;
  }
  return -1;
}
Falls der name also existiert wird die position zurück gegeben und falls das array durchlaufen wurde, ohen den namen zu finden, so wird -1 zurückgegeben.
 

Lestas89

Bekanntes Mitglied
Vielen Dank für deine Hilfe. Doch das ist für mich noch sehr kompliziert.
Ich habe das wie folgt versucht:

Java:
public class Programm2{
   public static void main(String[]args){
     String eingabe2 = "";
     String eingabe = "";
     String n = javax.swing.JOptionPane.showInputDialog("Geben Sie die Länge des String-Arrays ein:");
     int zahl = Integer.parseInt(n);
    
     String [] feld;
     feld = new String [zahl];
    
     for(int i = 0; i < feld.length; i++){
       eingabe = javax.swing.JOptionPane.showInputDialog("Geben Sie " +zahl+" Wörter ein");
       feld[i] = eingabe;
       }
     eingabe2 = javax.swing.JOptionPane.showInputDialog("Geben Sie einen Namen ein, der im Array gesucht werden soll:");
      
     for(int j = 0; j < feld.length; j++){
       if(feld[j].equals(eingabe2)){
         javax.swing.JOptionPane.showMessageDialog(null," Der Name ist an der "+ (j+1) + "ten Stelle im Array vorhanden.");
       }else{
         javax.swing.JOptionPane.showMessageDialog(null,"Der Name ist nicht vorhanden");
       }
       }
    
   }
}

Wenn ich das so mache, zeigt er mir mehrmals an "Der Name ist nicht vorhanden". Könntest Du mir vielleicht zeigen, wie das mit der else Anweisung funktioniert?

Vielen Dank im Voraus!
 
Zuletzt bearbeitet von einem Moderator:

Lestas89

Bekanntes Mitglied
Ich hab es jetzt mit der break Anweisung probiert. Es sieht wie folgt aus:

Java:
public class Programm2{
   public static void main(String[]args){
     String eingabe2 = "";
     String eingabe = "";
     String n = javax.swing.JOptionPane.showInputDialog("Geben Sie die Länge des String-Arrays ein:");
     int zahl = Integer.parseInt(n);
   
     String [] feld;
     feld = new String [zahl];
   
     for(int i = 0; i < feld.length; i++){
       eingabe = javax.swing.JOptionPane.showInputDialog("Geben Sie " +zahl+" Wörter ein");
       feld[i] = eingabe;
       }
     eingabe2 = javax.swing.JOptionPane.showInputDialog("Geben Sie einen Namen ein, der im Array gesucht werden soll:");
     
     for(int j = 0; j < feld.length; j++){
       if(feld[j].equals(eingabe2)){
         javax.swing.JOptionPane.showMessageDialog(null," Der Name ist an der "+ (j+1) + "ten Stelle im Array vorhanden.");
       }else{
         javax.swing.JOptionPane.showMessageDialog(null,"Der Name ist nicht vorhanden");
         break;
       }
       }
   
   }
}

Es funktioniert. Ich werde Deine Variante auch noch ausprobieren. Danke für Deine Hilfe.
 
Zuletzt bearbeitet von einem Moderator:

Bitfehler

Bekanntes Mitglied
Du durchläufst deine Schleife ohne bei einem Treffer abzubrechen.
Bsp.:
Dein gesuchtes Element befindet sich in der Mitte. Dann findest du es irgendwann, läufst in der Schleife aber weiter und bekommst dann die Meldung, dass das Element nicht vorhanden ist. Es ist erforderlich im Erfolgsfall die Schleife abzubrechen.
 

Lestas89

Bekanntes Mitglied
Hallo Bitfehler, also das alles funktioniert:
Java:
public class Programm2{
  public static void main(String[]args){
  String eingabe2 = "";
  String eingabe = "";
  String n = javax.swing.JOptionPane.showInputDialog("Geben Sie die Länge des String-Arrays ein:");
  int zahl = Integer.parseInt(n);
    boolean gefunden = true;
  
  String [] feld;
  feld = new String [zahl];
  
  for(int i = 0; i < feld.length; i++){
  eingabe = javax.swing.JOptionPane.showInputDialog("Geben Sie " +zahl+" Wörter ein");
  feld[i] = eingabe;
  }
  eingabe2 = javax.swing.JOptionPane.showInputDialog("Geben Sie einen Namen ein, der im Array gesucht werden soll:");
  
  for(int j = 0; j < feld.length; j++){
  if(feld[j].equals(eingabe2)){
  javax.swing.JOptionPane.showMessageDialog(null," Der Name ist an der "+ (j+1) + ". Stelle im Array vorhanden.");
      break;
    
  }
    
    
  }
  
  }
}

nun möchte ich dort noch irgendwie eine Funktion reinbringen, dass wenn ein Name nicht gefunden wird, ebenfalls eine Meldung ausgegeben wird. Ich kann das aber irgendwie nicht reinimplementieren :/
 
Zuletzt bearbeitet von einem Moderator:

InfectedBytes

Top Contributor
ich würde weiterhin empfehle ndas so machen wie ich oben beschrieben habe, ansonsten kannst du auch mit einem boolean arbeiten.
dieser wert vor der schleife auf false gesetzt, wenn innerhalb der schleife der name gefunden wird, setzt du die variable auf true.
Wenn die Schleife also durchlaufen wurde und der boolean dennoch false ist, so wurde kein name gefunden
 

Lestas89

Bekanntes Mitglied
Hallo InfectedBytes,

ich habe jetzt das gemacht was du gesagt hast und es funktioniert tatsächlich:
Java:
public class Programm2{
  public static void main(String[]args){
  String eingabe2 = "";
  String eingabe = "";
  String n = javax.swing.JOptionPane.showInputDialog("Geben Sie die Länge des String-Arrays ein:");
  int zahl = Integer.parseInt(n);
    boolean gefunden = false;

  String [] feld;
  feld = new String [zahl];

  for(int i = 0; i < feld.length; i++){
  eingabe = javax.swing.JOptionPane.showInputDialog("Geben Sie " +zahl+" Wörter ein");
  feld[i] = eingabe;
  }
  eingabe2 = javax.swing.JOptionPane.showInputDialog("Geben Sie einen Namen ein, der im Array gesucht werden soll:");

  for(int j = 0; j < feld.length; j++){
  if(feld[j].equals(eingabe2)){
  javax.swing.JOptionPane.showMessageDialog(null," Der Name ist an der "+ (j+1) + ". Stelle im Array vorhanden.");
      gefunden = true;
      break;

  }
    javax.swing.JOptionPane.showMessageDialog(null,"Nicht vorhanden");
    break;
  
  }

  }
}

Die Frage ist nur wieso es funktioniert ... ich versteh das nicht. Kannst du mir das nochmal erläutern? Wieso sorgt das gefunden = true, dafür, dass der Rest des Programms, also die Ausgabe "nicht vorhanden" nicht mehr durchlaufen wird?
 
Zuletzt bearbeitet von einem Moderator:

InfectedBytes

Top Contributor
tut es nicht und du hast es falsch implementiert. So funktioniert es nicht.
Java:
boolean gefunden = false;
for(...) {
  if(feld[j].equals(eingabe2)) {
    gefunden=true;
    break;
  }
}
if(!gefunden) {
  javax.swing.JOptionPane.showMessageDialog(null,"Nicht vorhanden");
}
 

Lestas89

Bekanntes Mitglied
Danke für deinen Hinweis. Ich werde es gleich ausprobieren. Ich glaube ich versteh es jetzt: Wenn das gefunden gleich true ist, dann wird der untere if Block garnicht mehr ausgeführt weil da false drin steht. Ist das richtig?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J Objekt-name in Array speichern Java Basics - Anfänger-Themen 12
A String Array: Suche nach Name -> Wert? Java Basics - Anfänger-Themen 3
F Array Unterschied Typ name[] Typ[] name Java Basics - Anfänger-Themen 7
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
B JaxB - Unique Name updaten / Referenzen in XML Java Basics - Anfänger-Themen 0
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
E gleicher Name in der Basisklasse und in der Subklasse Java Basics - Anfänger-Themen 45
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
J ArrayList Name mit String erstellen Java Basics - Anfänger-Themen 8
B Get property field von Name Java Basics - Anfänger-Themen 9
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
M Name der Komponete/Variabel/Methode Java Basics - Anfänger-Themen 5
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
D Taskmanager Name Java Basics - Anfänger-Themen 2
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
T Erste Schritte Elemente finden, deren Name erst "zusammengesetzt" wird Java Basics - Anfänger-Themen 8
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Name einer Variable als String nutzen Java Basics - Anfänger-Themen 13
T Name des Objektes OOP Java Basics - Anfänger-Themen 4
O String name mit fortlaufender Nummer Java Basics - Anfänger-Themen 14
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
D Mysql schauen Name bereits existiert Java Basics - Anfänger-Themen 7
E Java Name von Exe festlegen? Java Basics - Anfänger-Themen 7
T brauche den pfad Name! Java Basics - Anfänger-Themen 2
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Methode anhand deren Name aufrufen Java Basics - Anfänger-Themen 4
N Name zu sehr ähnlich??? Java Basics - Anfänger-Themen 12
K Datentypen Full qualified Name dynamisch gestalten Java Basics - Anfänger-Themen 7
E Welcher Package Name bei Eclipse/Android? Java Basics - Anfänger-Themen 2
H2SO3- name der klasse ausgeben Java Basics - Anfänger-Themen 6
-horn- public static double[][][] NAME() nur per RETURN Wertrückgabe möglich? Java Basics - Anfänger-Themen 20
Z objekt erstellen von canonical name einer klasse Java Basics - Anfänger-Themen 6
A Klasse importieren wenn 2 mal gleicher Name Java Basics - Anfänger-Themen 2
O DocumentListener -> Name des JTextFields bekommen Java Basics - Anfänger-Themen 2
J Parameter (Methode) -> Name eines Objekt Java Basics - Anfänger-Themen 3
G Name der Instanz einer Klasse. Java Basics - Anfänger-Themen 2
X Der Name des jars finden? Java Basics - Anfänger-Themen 8
B jar name ermitteln Java Basics - Anfänger-Themen 6
X Ordner mit Tageszeit als Name anlegen Java Basics - Anfänger-Themen 5
J ArrayListen mit Name und Vater an JTree übergeben Java Basics - Anfänger-Themen 3
T Rechner-Name abfragen Java Basics - Anfänger-Themen 6
K java.lang.NoClassDefFoundError: Klasse (wrong name... Java Basics - Anfänger-Themen 17
V mehrere Instanzen gleicher Name möglich? Java Basics - Anfänger-Themen 3
G XML nächstes Child element (gleicher name) Java Basics - Anfänger-Themen 5
G name vom objekt Java Basics - Anfänger-Themen 8
B Name und PLZ begrenzen Java Basics - Anfänger-Themen 3
K Objekte erstellen, wenn der Klassen-Name als String vorliegt Java Basics - Anfänger-Themen 4
D Name eines Terminals herausfinden Java Basics - Anfänger-Themen 3
M Kette- oder der Java Name Java Basics - Anfänger-Themen 2
G Name von java-Dateien, *.java Java Basics - Anfänger-Themen 9
G Name einlesen Java Basics - Anfänger-Themen 15
B Woher kommt der Name Java? Java Basics - Anfänger-Themen 4
O viele Name mit jeweils zugehörigen Status in .txt Speichern Java Basics - Anfänger-Themen 16
T System.getProperty("os.name") Java Basics - Anfänger-Themen 13
G File Name Case Sensitive Java Basics - Anfänger-Themen 2
R Welche Componente (Name)? Java Basics - Anfänger-Themen 2
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
X Property user.name über Konsole verändern Java Basics - Anfänger-Themen 6
D Name eines Objekts ermitteln Java Basics - Anfänger-Themen 5
L Name für Objekt übergeben Java Basics - Anfänger-Themen 3
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben