Suchen und sortieren

baker333

Bekanntes Mitglied
Hallo,
ich habe ein Problem beim Verständnis des folgenden Codes, um eine gesuchte Folge in einem Feld zu identifizieren:

Code:
boolean istTeilfolge(int[] feld, int[] gesuchteFolge) {
          for (int i = 0; i < feld.length -  gesuchteFolge.length + 1; i++) {
                for (int j = o; j < gesuchteFolge.length; j++) {
                      if (feld[i +j] != gesuchteFolge[j]) {
                          break;
                      } else if (j == gesuchteFolge.length -1) {
                            return true
                      }
               }
       }
return false;
}

Also mir ist klar, dass ich zwei Felder habe: Feld und gesuchteFolge. Mir ist auch sage ich mal klar, dass man immer einzelne Zahlen abgleicht und schaut, ob die Teilfolge in der entsprechenden Folge enthalten ist, allerdings verstehe ich den Code dahinter nicht.

Wie genau funktionieren i und j? Warum heißt es genau "feld[i + j] != gesuchteFolge[j]: Wozu addiere ich die beiden Positionen?

Vielen Dank
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Bitte immer in Code-Tags schreiben.
Java:
boolean istTeilfolge(int[] feld, int[] gesuchteFolge) {
    for (int i = 0; i < feld.length - gesuchteFolge.length + 1; i++) {
        for (int j = o; j < gesuchteFolge.length; j++) {
            if (feld[i +j] != gesuchteFolge[j]) {
                break;
            } else if (j == gesuchteFolge.length -1) {
                return true
            }
        }
    }
    return false;
}
Falls im Code
Java:
[i]
vorkommt, ist es weg, da du es nicht gleich in Code-Tags geschrieben hast.
 
X

Xyz1

Gast
Halte Dich bitte an die Spielregeln und nutze Code Tag s (Java), zur Leidwesenvermeidung aller!
 

baker333

Bekanntes Mitglied
scheint bei mir noch nicht so ganz mit dem Code Tag zu funktionieren.

Könntet ihr mir denn trotzdem bzgl. des Verständnis für den Code helfen?
 

baker333

Bekanntes Mitglied
Ich bin hier komplett neu, mache einen Fehler bei der Formatierung und dann wird man direkt abgewiesen. Das kann man doch auch netter ausdrücken.
 

baker333

Bekanntes Mitglied
Oki. Dann back to topic.
Wie genau funktioniert die for schleife?
Warum kann ich mittels i und j Feld und Teilfeld miteinander abgleichen?
 

Javinner

Top Contributor
Java:
boolean istTeilfolge(int[] feld, int[] gesuchteFolge)
{
     for (int i = 0; i < feld.length - gesuchteFolge.length + 1; i++)
     {
           for (int j = o; j < gesuchteFolge.length; j++)
           {
                if (feld[i + j] != gesuchteFolge[j])
                {
                     break;
                } else if (j == gesuchteFolge.length - 1)
                {
                     return true
                }
                }
      }
      return false;
}
Testprogramm:
Java:
public class JavaApplication26
{

  
    public static void main(String[] args)
    {
        int[] feld =
        {
            1, 2, 3, 4, 5, 6
        };
        int[] folge_eins =
        {
            1, 2, 3
        };

        System.out.println("------------------------------".concat(Integer.toString(1)));
        boolean istTeilFolge = istTeilfolge(feld, folge_eins);
        System.out.println(istTeilFolge);

        int[] folge_zwei =
        {
            4, 5, 6
        };

        System.out.println("------------------------------".concat(Integer.toString(2)));
        istTeilFolge = istTeilfolge(feld, folge_zwei);
        System.out.println(istTeilFolge);

        int[] folge_drei =
        {
            1, 2, 4
        };

        System.out.println("------------------------------".concat(Integer.toString(3)));
        istTeilFolge = istTeilfolge(feld, folge_drei);
        System.out.println(istTeilFolge);
    }

    static boolean istTeilfolge(int[] feld, int[] folge)
    {
        for (int i = 0; i < feld.length - folge.length + 1; i++)
        {
            for (int j = 0; j < folge.length; j++)
            {
                System.out.println(String.format(Locale.GERMAN, "Feld<i + j> %d, Folge<j> %d%n", feld[i + j], folge[j]));
                if (feld[i + j] != folge[j])
                {
                    break;
                } else if (j == folge.length - 1)
                {
                    return true;
                }
            }
        }
        return false;
    }

}
/** Output */
------------------------------1
Feld<i + j> 1, Folge<j> 1
Feld<i + j> 2, Folge<j> 2
Feld<i + j> 3, Folge<j> 3
true
------------------------------2
Feld<i + j> 1, Folge<j> 4
Feld<i + j> 2, Folge<j> 4
Feld<i + j> 3, Folge<j> 4
Feld<i + j> 4, Folge<j> 4
Feld<i + j> 5, Folge<j> 5
Feld<i + j> 6, Folge<j> 6
true
------------------------------3
Feld<i + j> 1, Folge<j> 1
Feld<i + j> 2, Folge<j> 2
Feld<i + j> 3, Folge<j> 4
Feld<i + j> 2, Folge<j> 1
Feld<i + j> 3, Folge<j> 1
Feld<i + j> 4, Folge<j> 1
false

Schau dir das hier an, was siehst du?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
I String nach Wort suchen Java Basics - Anfänger-Themen 6
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
CptK Koordinate in Liste suchen Java Basics - Anfänger-Themen 20
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
B Java Mail: suchen von mehreren Emailadressen Java Basics - Anfänger-Themen 5
D Erste Schritte Wert im Array suchen Java Basics - Anfänger-Themen 12
J Wörter aus Textdatei suchen Java Basics - Anfänger-Themen 2
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
F In List Rekursiv suchen Java Basics - Anfänger-Themen 12
S Wort suchen und ersetzen in einer Datei Java Basics - Anfänger-Themen 6
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
C In ArrayList suchen Java Basics - Anfänger-Themen 6
G nach 9 - stelliger Nummer suchen Java Basics - Anfänger-Themen 7
D Liste nach 2 gleichen Einträgen suchen Java Basics - Anfänger-Themen 4
N Operatoren Suchen nach einer bestimmten Eingabe (durch Scanner) Java Basics - Anfänger-Themen 7
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
Y Explizites Suchen Java Basics - Anfänger-Themen 13
G Zeichen suchen und Ausgeben. Java Basics - Anfänger-Themen 3
K String in String-Array suchen Java Basics - Anfänger-Themen 11
T Suchen in sortiertem Feld Java Basics - Anfänger-Themen 2
K Im String Array suchen Java Basics - Anfänger-Themen 8
E Belebeste Area im Game of Life suchen Java Basics - Anfänger-Themen 0
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
L Name im Array suchen Java Basics - Anfänger-Themen 12
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
A Suchen und ersetzen Java Basics - Anfänger-Themen 13
P Teilstring suchen Java Basics - Anfänger-Themen 3
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
D String in Datei suchen und löschen Java Basics - Anfänger-Themen 2
A Nach dem Objekt suchen Java Basics - Anfänger-Themen 1
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
K Maximum Suchen Array Java Basics - Anfänger-Themen 6
W .txt auslesen und nach schlüsselbegriffen suchen Java Basics - Anfänger-Themen 7
S Suchen in Arrays Java Basics - Anfänger-Themen 7
J Input/Output String Suchen und Ersetzen Java Basics - Anfänger-Themen 8
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
T String in Array suchen Java Basics - Anfänger-Themen 9
G Erste Schritte Nach bestimmten Dateien suchen und dann in die Registry schreiben. Java Basics - Anfänger-Themen 6
B Nach regulären Ausdrücken suchen Java Basics - Anfänger-Themen 14
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
B Suchen und ersetzten mit \ ? Java Basics - Anfänger-Themen 9
A String in String suchen Java Basics - Anfänger-Themen 3
J Nach einem Wert suchen +/- x Java Basics - Anfänger-Themen 8
D Binäres Suchen Java Basics - Anfänger-Themen 11
N Weg suchen bei Adjazenzmatrix Java Basics - Anfänger-Themen 2
E Suchen mit Hashfunktion ?! Java Basics - Anfänger-Themen 7
C Binäres Suchen mit Rekursion Java Basics - Anfänger-Themen 5
I Erste Schritte Ein Zeichen in einem Array Suchen Java Basics - Anfänger-Themen 8
N Binär suchen: Java Basics - Anfänger-Themen 4
D In Hashtable suchen Java Basics - Anfänger-Themen 3
J In String suchen Java Basics - Anfänger-Themen 14
D Nach String "{" suchen Java Basics - Anfänger-Themen 4
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
L String suchen und ersetzten, ohne neue Datei Java Basics - Anfänger-Themen 4
M Notiz suchen-Programm Java Basics - Anfänger-Themen 3
F Zusammenhängend Komponente suchen(Graph) Java Basics - Anfänger-Themen 4
M Teilmatrix suchen Java Basics - Anfänger-Themen 16
B Java nach bestimmter dateiendung suchen Java Basics - Anfänger-Themen 6
B Element in Folge suchen Java Basics - Anfänger-Themen 7
T String aus einer ArrayList suchen Java Basics - Anfänger-Themen 7
V Doppelte Zahl suchen Java Basics - Anfänger-Themen 14
G List suchen und doppelte rausfiltern Java Basics - Anfänger-Themen 3
R Datentypen In String nach String suchen und hinzufügen Java Basics - Anfänger-Themen 2
D Textdatei einlesen und darin suchen Java Basics - Anfänger-Themen 11
I Wie kann ich ein Wort in einem String suchen Java Basics - Anfänger-Themen 3
P char[] - suchen/ löschen Java Basics - Anfänger-Themen 6
S Datentypen In ArrayList nach Element suchen und Position ausgeben Java Basics - Anfänger-Themen 9
D Array Fehler / groesste Primzahl suchen Java Basics - Anfänger-Themen 4
C Objekt aus Liste suchen Java Basics - Anfänger-Themen 6
S Binärbaum - Klasse Knoten - Methode Suchen Java Basics - Anfänger-Themen 5
D In String suchen und extrahieren Java Basics - Anfänger-Themen 13
B Suchen nach Teilstring, um Text danach ausgeben Java Basics - Anfänger-Themen 11
H Höchsten int-Wert(key) aus einer Hashmap suchen Java Basics - Anfänger-Themen 19
J Feld in Tabelle suchen Java Basics - Anfänger-Themen 8
Developer_X Strings in JTextarea suchen Java Basics - Anfänger-Themen 15
F Datei suchen --> Pfad als String speichern Java Basics - Anfänger-Themen 8
R einen gegebenen String in einem String suchen Java Basics - Anfänger-Themen 6
J Suchen nach ArrayObjekten Java Basics - Anfänger-Themen 17
? Algo gleicher Buchstabe in 2 Wörtern suchen Java Basics - Anfänger-Themen 16
G String suchen Java Basics - Anfänger-Themen 4
X Attribut in n Objekten suchen Java Basics - Anfänger-Themen 8
G String in Array suchen Java Basics - Anfänger-Themen 6
G Texte innerhalb von Dateien suchen Java Basics - Anfänger-Themen 9
P Text in Verzeichnisse suchen Java Basics - Anfänger-Themen 4
-horn- String im String suchen, womit? Java Basics - Anfänger-Themen 2
G String Suchen ersetzen replace_all() Java Basics - Anfänger-Themen 6
G Nach Datum suchen. Java Basics - Anfänger-Themen 4
M Rekursives suchen im TreeMenu Java Basics - Anfänger-Themen 10
G In DefaultTreeModel suchen Java Basics - Anfänger-Themen 2
G BST Suchbäume kleinsten Wert suchen Java Basics - Anfänger-Themen 3
G Zeichenkette suchen in Vector-Klasse Java Basics - Anfänger-Themen 11
G Suchen in Map nach Schlüssel? Java Basics - Anfänger-Themen 2
G Methode in API suchen Java Basics - Anfänger-Themen 3
S Anzahl von Zeichen in einem String suchen und zählen Java Basics - Anfänger-Themen 1
R maximum in integer array suchen Java Basics - Anfänger-Themen 29
X Suchen mit Filterfunktion, Platzhalter etc. Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben