Erste Schritte Arrays über eine for Schleife ansprechen.

Larisio

Mitglied
Moin Moin,
ich habe folgendes Problem ich bin neu in Java "Scene" und bin noch recht frisch hinter den Ohren.

Momentan plagt mich folgendes Problem:
Ich möchte eine Stückzahl von String Arrays ansprechen das ganze über for Schleife.
(For Schleife, weil es in Zukunft möglich sein soll neue Arrays zu erstellen und weil mein Lehrer es so will.)
Die Felder der Arrays sind mit Wörtern belegt die über einen return mit einem Zufallswert angesprochen werden sollen.

Am Ende sollte es möglich sein die Array Zahl (noch ohne Consolen eingabe) beliebig zu erweitern ohne großen aufwand zu betreiben, denn das "Programm" soll mit einem immer wachsenden Wortschatz neue Sätze Bilden können.

WörterPlus.java:20:48: error: cannot find symbol
System.out.print(" "+Gruppe[Wörter(Gruppe.length)]);
^
symbol: variable length
location: variable Gruppe of type String
WörterPlus.java:20:34: error: array required, but String found
System.out.print(" "+Gruppe[Wörter(Gruppe.length)]);
^
2 errors

Java:
public class WörterPlus {



  public static void main (String [] args){

    String [ ] GruppenKopf = {"Gruppe1", "Gruppe2"}; //legt die Anzahl der Arrays fest

    //Wortschatz
    String [ ] Gruppe1 = {"Das", "Ein", "Dies", "Der", "Damals", "Niemals"};
    String [ ] Gruppe2 = {"ist", "war", "bleibt", "würde", "wird", "wussten"};


//Ansprechen der Gruppen

  for (int i = 1;i<=GruppenKopf.length; i++ ) {
    String Gruppe = "Gruppe" +i;
    System.out.print(" "+Gruppe[Wörter(Gruppe.length)]);
  } // end of for

}
public static int Wörter(int zufall){ // Zuffalswerte

  return (int)(Math.random() * zufall);


}
}
 
Zuletzt bearbeitet:
Du kannst nicht auf den Namen des Arrays zugreifen und dann gleichzeitig auf das Objekt. Ich würde das eher so lösen mit einem 2D-Array:
Java:
String[] GruppenKopf = { "Gruppe1", "Gruppe2" };

String[] Gruppe1 = { "Das", "Ein", "Dies", "Der", "Damals", "Niemals" };
String[] Gruppe2 = { "ist", "war", "bleibt", "würde", "wird", "wussten" };
String[][] Gruppe = { Gruppe1, Gruppe2 };

for (int i = 1; i <= GruppenKopf.length; i++) {
    System.out.print(" " + Arrays.toString(Gruppe[Wörter(Gruppe.length)]));
}
 
Danke für eure Antworten. Ich stehe quasi in den Winterferien daher habe ich keinen außer euch (for ever alone) der mir helfen kann. Ich möchte nun aber in den Ferien fortschritte erzielen und
da ich, warscheinlich aufgrund meiner Inkompetenz, mal wieder einen Error erhalten habe frage ich sicherheitshalber nach.

Gibt es Artikel zum aufbau dieses Parts.

Java:
+ Arrays.toString(Gruppe[Wörter(Gruppe.length)]));
Sowie 2D Arrays ?

Ich denke ihr werdet mit mir noch viel spaß und ärger haben. 😉

Für die weiter arbeit an meinem Problem noch den Fehler.
WörterPlus.java:18:30: error: cannot find symbol
System.out.print(" " + Arrays.toString(Gruppe[Wörter(Gruppe.length)])); //
(das steht normaler weise unter dem A von Arrays)^

symbol: variable Arrays
location: class WörterPlus

1 error
 
Error soweit behoben nach dieser vorgehensweise gibt er mir beide Arrays volständig aus das ist schonmal ein fortschritt danke dir.

Zur erklärung Ziel ist es aus jedem Array ein zufälliges Wort auszugeben zuvor wurde das so erledigt.

Java:
 System.out.print(" "+ Gruppe1[Wörter(Gruppe1.length)]) ;
 System.out.print(" "+ Gruppe2[Wörter(Gruppe2.length)]) ;

Der Teil soll nun mir einer For schleife ersetzt werden dazu haben ich einen weiteren Array angelegt der die Anzahl und den Namen der Arrays enthält um die Wiederholrate der Schleife zu begrenzen.
(Siehe array GruppenKopf)
Ersetzt habe ich GruppenKopf nun dank Flown durch den 2D array Gruppe.

Tschuldigung falls meine beschreibungen so ungenau sind ich gebe mein bestes.🙂
 
Soweit so gut Auftrag ausgeführt...
Ich denke ich hab mich einwenig zu doof angestellt bei der Suche nach der Lösung.

Java:
import java.util.Arrays;
public class WoerterPlus { 
  public static void main (String [] args){
    String [ ] Gruppe1 = {"Er", "Sie","Es"};
    String [ ] Gruppe2 = {"ist", "wird", "mag", "war", "soll", "möchte"  } ;
    String [ ] Gruppe3 = {"schwimmen", "kotzen", "rappen", "heulen", "brüllen", "abgeschoben", "pisseln", "sterben", "Butter"};
    String[][] Gruppe = { Gruppe1, Gruppe2, Gruppe3};
  
    String[] zufaelligeWoerter = new String[Gruppe.length];
    for(int i=0; i < Gruppe.length; i++){  
      zufaelligeWoerter[i]=zieheWort(Gruppe[i]);
    }  
    System.out.println(toString(zufaelligeWoerter));  
    }
  
    public static String toString(String[] arrayMitStrings)
    {
      String s="";    
      for (int i=0; i < arrayMitStrings.length; i++) {
        s = s + arrayMitStrings[i] + " ";
      } // end of for    
      return s;    
    }
  
    public static String zieheWort(String[] gruppe){    
      int zufall = (int)(Math.random() * gruppe.length);    
      return gruppe[zufall];
    }
  }
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben