Array nach bestimmten String durchsuchen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Array nach bestimmten String durchsuchen

    Hallo,

    ich habe folgendes Problem und wäre für eine Antwort bzw. Hilfe sehr dankbar ;)

    Ich habe ein Array private String position[][]=new String[26][26]; In diesem Array werden dann später Daten wie folgt eingetragen:

    position[px][py]="Monster"; wobei px und py zufällig generierte Zahlen sind (random). Beispiel: wenn px=5 und px=9 ist, dann wird das wie folgt eingetragen: position[5][9]="Monster". Der String Monster wird aber mehrmals in dem Array abgespeichert!

    Nun möchte ich das Array aber später nach dem String "Monster" durchsuchen und wenn der String in dem Array gefunden wird, möchte ich die Array-Index Werte ausgeben.

    Beispiel:
    position[5][9]="Monster";
    position[1][17]="Monster";
    .....

    Nun möchte ich die Werte 5 und 9, sowie 1 und 17 usw. ausgeben bzw. dann in einer XML Datei speichern. Nun aber meine Frage: Wie kriege ich das hin? Ist es überhaupt mit einem Array möglich?

    ich hoffe doch sehr das ihr mir weiterhelfen könnt ;)

    Matthias
    "Ich bin wie Wein und werde im Alter immer besser." (Greg Foster)
  • Nichts einfacher als Suchen in Arrays.

    Quellcode

    1. String searchstring = "test";
    2. for(int i=0; i<position.length; i++) {
    3. for(int j=0; j<position[i].length; j++) {
    4. if(position[i][j].equals(searchstring)) {
    5. System.out.println(i+"/"+j);
    6. }
    7. }
    8. }


    Für das Schreiben von XML Files kannst du mit Scanner oder Streams arbeiten. Dazu benötigst du keine spezielle Klasse.
  • Hey!

    erstmal danke für die Antwort und die Hilfe. Aber wenn ich den Code ausführe bekomme ich eine Exception: java.lang.NullPointerException
    Was kann ich dagegen tun? Und zum Anderen: Um die Sache mit dem XML brauchts du / ihr keine Gedanken machen, das ist nicht das Problem, mir geht/ging es nur um die Suche in Arrays.

    Die Exception kommt aber nicht, wenn ich diesen Teil auskommentiere:

    Quellcode

    1. if(position[i][j].equals(searchstring)) { System.out.println(i+"/"+j); }

    Dann gibt er mir zwar nicht die Werte aus, aber es kommt keine Exception.

    Was hilft dagegen?


    EDIT!

    Ich hab's gelöst und auch rausgefunden warum er die NullpointerException wirft. Hab's gelöst in dem ich einen Try und Catch Block drumgebaut habe und im Catch NullpointerException Teil, die Exception nicht behandelt habe.

    Quellcode

    1. try
    2. {
    3. if(position[i][j].equals(searchstring)) {
    4. System.out.println(i+"/"+j);
    5. }
    6. }
    7. catch(NullPointerException ex)
    8. {
    9. //exception ignorieren
    10. }
    "Ich bin wie Wein und werde im Alter immer besser." (Greg Foster)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Opa114 ()

  • Ich hab die Ausgabe mal in die for-Schleife gemacht wie du gesagt hast und dann wird folgendes ausgegeben:

    Exception in thread main - NullPointerException wie bisher
    und dann
    test: 0/0
    Er läuft gar nicht über 0/0 hinaus.

    Ich hab mich mal informiert was es mit rNullPointerException auf sich hat und habe dazu folgendes gefunden:

    Quellcode

    1. Beschreibung
    2. Die NullPointerException wird ausgelöst, wenn versucht wird, über einen Verweis, der den Wert null hat, ein Datenelement, eine Methode oder ein Array-Element anzusprechen.


    Und da in dem Array ja auch Elemente drin sind mit dem Wert null verwundert mich die Meldung momentan nicht mehr.
    Denn in dem Array wird nicht jede Zeile/Spalte mit einem Wert belegt.
    "Ich bin wie Wein und werde im Alter immer besser." (Greg Foster)