Probleme beim printen von Arrays durch for Schleife

Diskutiere Probleme beim printen von Arrays durch for Schleife im Java Basics - Anfänger-Themen Bereich.
N

nikva

Hallo,
Ich sitze an einer Programmierung die zufällig Wm Gruppen auslosen und die dann in der console ausgeben soll.
Jetzt habe ich jedoch das problem dass nur die ersten 3 Teams in der Gruppe stehen und der rest dann einfach rechts daneben ausgegeben wird.


Java:
package edu.hm.cs.swe2.urn.usage;

import edu.hm.cs.swe2.urn.base.Urn;
import edu.hm.cs.swe2.urn.exceptions.NoContentLeftException;

public class Tournament {

    private String title;
    private String[][] groups;

    public Tournament(int numberOfGroups, int numberOfTeamsPerGroup, Urn<String> urn) throws NoContentLeftException {
        this.title = urn.getTitle();
        this.groups = new String[numberOfGroups][numberOfTeamsPerGroup];

        for (int k = 0; k < groups[0].length; k++) {
            for (int i = 0; i < groups.length; i++) {
                String teamName = urn.drawFrom();
                groups[i][k] = teamName;
            }

        }
    }

    public void printGroupStructure() {
        System.out.println("Auslosung der Begegnungen, Fussball-Weltmeisterschaft 2010\n");
        for (int i = 0; i < groups.length; i++) {
            char x = (char) (65 + i);
            String s = String.valueOf(x);
            System.out.format("%-16s", s);
        }

        for (int k = 0; k < groups[0].length; k++) {
            for (int i = 0; i < groups.length; i++) {
                System.out.format("%-16s", groups[i][k]);
            }
            System.out.println();
        }

    }
}
Hoffe jemand hat ne Idee wo der Fehler liegt

edit: Das Problem ist das selbe egal wie groß die Gruppen sind. Die letzte "Reihe" wird immer abgeschnitten
 
Zuletzt bearbeitet:
M

M.L.

Ohne Zugriff auf die verwendeten Imports dürfte das ein Ratespiel werden. Aber vielleicht steckt der Fehler in den Anweisungen
groups[0].length; sowie groups.length;. Hier mal via Debugger / Konsolenausgabe /... überprüfen, ob die Werte passen.
 
N

nikva

Java:
package edu.hm.cs.swe2.urn.base;

import java.util.ArrayList;

import edu.hm.cs.swe2.urn.Helper;
import edu.hm.cs.swe2.urn.exceptions.NoContentLeftException;

public class Urn<T> {

    private String title;
    private ArrayList<T> items = new ArrayList<T>();

    public Urn(String title, T[] elements) {
        this.title = title;
        for (int i = 0; i < elements.length; i++) {
            items.add(elements[i]);
        }
    }

    public String getTitle() {
        return this.title;
    }

    public T drawFrom() throws NoContentLeftException {
        T item = null;

        if (items.isEmpty()) {
            throw new NoContentLeftException();
        } else {
            int r = Helper.random(items.size());
            item = items.get(r);
            items.remove(r);
        }
        return item;
    }

}
Aber vielleicht steckt der Fehler in den Anweisungen
groups[0].length; sowie groups.length;
Nachdem er die erste Reihe schreibt macht er weiter obwohl er nach groups.length(8) aufhören sollte. Interessanterweise macht er genau doppelt so viele Schritte aber auch nur im ersten Durchgang :rolleyes:
 
Zuletzt bearbeitet:
N

nikva

Ok, hab das Problem gelöst:
Ich hab nach der ersten for-schleife für den Gruppentitel ein system.out.println() gesetzt damit er da in die nächste zeile springt.
Jetzt klappt es
 
Thema: 

Probleme beim printen von Arrays durch for Schleife

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben