Textorientiere Applikation erstellen

morphi79

Erfahrenes Mitglied
Neuer Tag, neues Glück. Folgendes möchte ich gerne wissen:

Vorgegeben ist die Klasse Vergleiche, in der bereits drei String-Arrays (vorn, hinten
und gesucht) als Klassenvariablen definiert sind. Diese Array enthalten jeweils eine
Anzahl von Wörtern oder Wortteilen. Füllen Sie die noch leere Methode main() dieser
Klasse mit Anweisungen, die nacheinander die beiden folgenden Schritte
durchführen:
- Im ersten Schritt werden alle möglichen Kombinationen aus einem Wortteil
aus dem Array vorn und einem dahinter gehängten Wortteil aus dem Array
hinten gebildet. Die entstehenden (mehr oder weniger sinnvollen) Wörter
werden in einem neuen Array abgelegt.
- Im zweiten Schritt werden alle so zusammengesetzten Wörter auf jeweils
einer Zeile ausgegeben. Dabei soll bei jedem Wort geprüft werden, ob es im
Array gesucht enthalten ist. Ist dies der Fall, so soll das Wort mit dem Zusatz „
(gefunden)“ dahinter auf der gleichen Zeile ausgegeben werden. Wörter, die
nicht in gesucht enthalten sind, sollen ohne Zusatz ausgegeben werden.
Beachten Sie, dass Ihre Lösung vom konkreten Inhalt von vorn, hinten und gesucht
unabhängig sein soll. (Änderungen an diesen Arrays, auch an ihrer Länge, sollen
keine Änderungen an Ihrer Lösung erforderlich machen.)

Code:
  public class Vergleiche {
	private static String[] vorn = {
 "Hoch",
 "Tief",
 "Park"
	};
	
	private static String[] hinten = {
 "bau",
 "garage",
 "haus",
 "ebene"
	};
	
	private static String[] gesucht = {
 "Hochgarage",
 "Parkhaus",
 "Hochebene",
 "Tiefbau"
	};
	
	public static void main(String[] args) {
	
}
}

Ließt sich ja eigentlich ganz einfach. Als erstes müsste ich alle Arrays der Klasse vorn mit den Arrays der Klasse hinten vermischen und wiederum in jeweils einem neuen Array anlegen.

Ich bekomm nicht mal das richtig hin.
 
mach doch folgendes in deiner main methode:



Code:
   //        konkatienieren der arrays
   //        erstens initialisieren des neuen arrays: da wir hier 3 * 4 kombinationen haben erfolgt //
   //        daraus: 12 kombinationen gibt es in unserem beispiel..
  // um das ganze generisch zu machen (also ohne grosse änderungen multiplizieren wir einfach die grössen der Arrays.
   static String [] neuesArray=new String[vorn.length*hinten.length];
           
 
       public static void main(String[] args) {
           int solutionarray=0;
   //        2 Schleifen erstellen
           for (int i=0; i<vorn.length;i++) {
           for (int j=0; j<hinten.length;j++) {
   //        vermische beide (sprich vorne+hinten=neu)
           neuesArray[solutionarray++]=vorn[i]+hinten[j];
           }
           }
   
   //        ausgabe des neuen Arrays:
           boolean gefunden=false;
           for (int i=0; i<neuesArray.length; i++) {
               
           for (int j=0; j<gesucht.length; j++) {
             if (neuesArray[i].equals(gesucht[j])) gefunden=true ;
           }
           System.out.print(neuesArray[i]);
   
           if (gefunden) System.out.println(" gefunden");
           else System.out.println("");
           gefunden=false;
           }
   
       }


War doch gar net so schwer ;)

Gruss,

Torsten
 
Zuletzt bearbeitet:
also muss ich als erstes in der classe oben die multiplikation der arrays einfügen.


dann 2x for-Schleifen, das war mir schon klar.

und letztendlich die Ausgabe mit dem Typ boolean für gefunden = true.

oder?
 
habe das thread als erledigt gekennzeichnet, da die klasse nun klappt. allerdings wollte ich nochmals nachfragen, ob ich das wie 2 beiträge weiter oben dann auch so richtig verstanden habe.
 
Hi, du musst jedesmal wenn du den neuen Array ausgibst für jedes element in dem array überprüfen ob es in dem gesucht array drin ist. Die gefunden - Variable ist nur eine hilfsvariable, ob ich hinter jeder Zeile die ich ausgebe ein gefunden dranhänge oder nicht.

Dies wird in der Schleife abgeprüft welche ich bei der ausgabe durchlaufe.

Du hast aber verstanden, warum ich oben die grösse der 2 arrays multipliziere, oder?

Wenn dir das mit den 2 For schleifen klar war, warum hast du es dann nicht so gemacht ;)



Gruss,

Torsten
 
Zuletzt bearbeitet:
Zurück