Wie gebe ich in Java einen mehrdimensionalen Array Zeilen- und Spaltenweise aus?

5 Antworten

Hallo.

Würde wahrscheinlich einfach Schleifen und einen StringBuffer verwenden. (Der Code ist nur ein Beispiel, die generische Funktion funktioniert nur mit Objekttypen, also nicht mit dem primitiven Datentyp int[][].)

public class Test {
    public static <T> String toStringMultArray(T[][] a, String delim) {

        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < a.length; i++) {
            T[] line = a[i];
            for (int j = 0; j < line.length; j++) {
                sb.append(line[j]);
                if (j < line.length - 1) {
                    sb.append(delim);
                }
            }
            sb.append("\n");
        }
        return sb.toString();
    }
    
    public static void main(String[] args) {
        
        Integer[][] ai = new Integer[][]{
            {1, 2, 3, 4},
            {9, 8, 7, 6},
        };
        String[][] as = new String[][]{
            {"Hallo", "Welt"},
            {"Wie", "geht", "es", "Dir"},
        };        

        System.out.print(toStringMultArray(ai, ", "));
        System.out.print(toStringMultArray(as, " "));
   }
}

Mit System.print statt System.println?


woqjoiqwd2 
Beitragsersteller
 09.10.2021, 16:55

aso, okay dachte das gehe nicht danke

entweder du baust dir strings

oder du machst halt mit print etc und ein linefeed nach der ersten For schleife .

also so wie man das mit zettel und stifft auch machen würde .

for(int i = 0; i <array.length; i++) {
    System.out.println(Arrays.toString(array[i]));
}

Dazu musst du natürlich das äußere nehmen.

Woher ich das weiß:Berufserfahrung – Programmierer

Wie wärs wenn du einfach zwei Schleifen baust, für jede Zeile eine, und in der zweiten Schleife jedesmal eine neue Zeile einfügst? Das geht meistens über "\n".