Variablen Variable aus JOptionPane Abfrage in Array einfügen

Nitrogames

Neues Mitglied
Wie kann ich die String Variable von der JOptionPane Abfrage in das String Array einfügen?

Java:
import javax.swing.JOptionPane;

public class Stundenplan {
    
    public static void main(String[] args)
    {
        String [] [] stundenplaner = new String [8] [5];{
            
            stundenplaner[0][0]="Geschichte"; //Koordinaten 0 0
            
            
            System.out.println(stundenplaner[0][0]);
            
            for (int i=0; i<stundenplaner.length; i++)
            {
            
            String abfrage = JOptionPane.showInputDialog("Was hast du am Montag in der "+(i+1)+" Stunde?");
            }
            }

            stundenplaner[0][0]= abfrage;
}
}
 
Bei der Fragestellung ist es erst einmal für mich nicht erkennbar, was Du genau in dem Array speichern willst. Du hast ja ein 2D Array.

Ich gehe einmal davon aus, dass Du da 8 Stunden (index 0...7) an 5 Tagen (0..5 für Montag, Dienstag, ..., Freitag) genommen hast. Das ist aber einfach nur eine Annahme, die natürlich falsch sein kann. Ist aber nicht ganz so wichtig.

Betrachten wir nur einmal diese Ausschnitt:
Java:
            for (int i=0; i<stundenplaner.length; i++)
            {
                String abfrage = JOptionPane.showInputDialog("Was hast du am Montag in der "+(i+1)+" Stunde?");
            }

Die Variable abfrage ist eine lokale Variable und daher nur innerhalb dieses Schleifenblocks gültig. Wenn Montag Tag 0 ist und der Index so ist, wie oben beschrieben, dann wäre in der Schleife eine Zuweisung zu stundenplaner[i][0] möglich:
Java:
            for (int i=0; i<stundenplaner.length; i++)
            {
                String abfrage = JOptionPane.showInputDialog("Was hast du am Montag in der "+(i+1)+" Stunde?");
                stundenplaner[i][0] = abfrage;
            }

Du kannst natürlich die Variable abfrage ganz entfernen und die Rückgabe direkt zuweisen.
 
Bei der Fragestellung ist es erst einmal für mich nicht erkennbar, was Du genau in dem Array speichern willst. Du hast ja ein 2D Array.

Ich gehe einmal davon aus, dass Du da 8 Stunden (index 0...7) an 5 Tagen (0..5 für Montag, Dienstag, ..., Freitag) genommen hast. Das ist aber einfach nur eine Annahme, die natürlich falsch sein kann. Ist aber nicht ganz so wichtig.

Betrachten wir nur einmal diese Ausschnitt:
Java:
            for (int i=0; i<stundenplaner.length; i++)
            {
                String abfrage = JOptionPane.showInputDialog("Was hast du am Montag in der "+(i+1)+" Stunde?");
            }

Die Variable abfrage ist eine lokale Variable und daher nur innerhalb dieses Schleifenblocks gültig. Wenn Montag Tag 0 ist und der Index so ist, wie oben beschrieben, dann wäre in der Schleife eine Zuweisung zu stundenplaner[i][0] möglich:
Java:
            for (int i=0; i<stundenplaner.length; i++)
            {
                String abfrage = JOptionPane.showInputDialog("Was hast du am Montag in der "+(i+1)+" Stunde?");
                stundenplaner[i][0] = abfrage;
            }

Du kannst natürlich die Variable abfrage ganz entfernen und die Rückgabe direkt zuweisen.
Die Annahme ist richtig. Das hätte ich vielleicht vorher noch genauer erklären sollen. Wie kann ich denn am effektivsten die Abfragen für Montag-Freitag machen und in das Array einfügen?
 
Die Annahme ist richtig. Das hätte ich vielleicht vorher noch genauer erklären sollen. Wie kann ich denn am effektivsten die Abfragen für Montag-Freitag machen und in das Array einfügen?
Ganz einfache Lösung: Du machst einfach ein Array mit den Wochentagen. Dann kannst Du mit einer Schleife drüber laufen und den Namen aus dem Array holen. Das ist eine einfache Lösung, die vermutlich dem sehr nahe kommt, was Du brauchst.

Es gibt aber natürlich auch die komplexere, ausbaufähigere Lösung:
Was macht den Wochentag aus? Das wäre dann eine eigene Klasse. Da es nur eine feste Anzahl an Instanzen gibt, ist es eine spezielle Art von Klasse: Die Enumeration.

Dann hättest Du pro Eintrag noch den (visuellen) Namen und den Index hinterlegt.

So einen Ansatz kann man dann auch jederzeit erweitern. So kann der visuelle Name z.B. aus einem Resource-File kommen so dass jeder User das in seiner Sprache bekommen kann und so ... (Das ist halt der Vorteil, wenn man es so Objektorientiert aufbaut.)

Aber das ist vermutlich ein Ansatz, der derzeit noch zu weit gehen würde, da Du bei den Java Anfängen zu sein scheinst. Daher nimm dies nur als eine Art Vorschau, was da noch an interessanten Sachen kommen werden, wenn Du Dich da etwas mehr mit Java beschäftigst.
 

Zurück
Oben