Erste Schritte Größe eines 2 dimensionalen Arrays ausgeben

Hoschie

Mitglied
Hallo Community,
ich habe folgendes Problem:
Ich möchte ein 2 dimensionales Array mit 2 Zeilen und 9 Spalten erzeugen und in der ersten Zeile 9 Strings einfügen. Die 2te Zeile soll erstmal noch nicht befüllt werden.

Das erzeugen und belegen des Arrays:
Java:
String tabNoten[][] = { {"Deutsch", "Politik", "Englisch", "Mathematik", "Naturwissenschaft", "Religion", "Sport", "Schwerpunkt", "Wahlpflicht"},
{} };

Nun möchte ich mir den Inhalt des Arrays in einer for Schleife anzeigen lassen:
Java:
for(int i = 0; i < tabNoten.length; i++) {
     System.out.println(tabNoten[0][i]);
		}

Nun komme ich mit tabelle.length leider nur auf den Wert 2.
Woran liegt das und wie komme ich auf meinen eigentlich Wert von 9?
Ich stehe evtl auch gerade einfach nur auf dem Schlauch und bräuchte nen Schubs in die richtige Richtung.

Danke für die Hilfe!
 
Zuletzt bearbeitet:
Java:
public class Test {

	public static void main(String[] args) {
		
		String tabNoten[][] = { {"Deutsch", "Politik", "Englisch", "Mathematik", "Naturwissenschaft", "Religion", "Sport", "Schwerpunkt", "Wahlpflicht"},{}};
		
		for(int i = 0; i < tabNoten.length - 1; i++) {
			System.out.println(tabNoten[i].length);
            }
		}
}

Ausgabe:

9

[EDIT]Du hast falsch initialisiert[/EDIT]

Java:
public class Test {

	public static void main(String[] args) {
		
		String tabNoten[][] = {{"1","2","3"},{"4","5","6"}};  // <---- {{i},{j}};
		//alles ausgeben:
		
		for (int i = 0; i < tabNoten.length; i++) {
	        for (int j = 0; j < tabNoten[i].length; j++) {
	            System.out.print(tabNoten[i][j]);
            }
        }
	}
}

Ausgabe : 
123456
 
Zuletzt bearbeitet:
Ok ich danke Dir.
Ich hab nicht gewusst das ich die Zeile angeben muss, aus der er die Länge der Spalte ziehen soll.

Hab meine Schleifensteuerung nun modifiziert und bekomme das entsprechende gewünschte Ergebnis:

Java:
for(int i = 0; i < tabNoten[0].length; i++)

[EDIT]Hier nun der funktionierende Code wie ich mir das vorgestellt habe:[/EDIT]

Java:
package arrays;

import java.util.Random;

public class NumerusClausus {

public static void main(String[] args) {
	Random r = new Random();
	String tabNoten[][] = {
       {"Deutsch", "Politik", "Englisch", "Mathematik", "Naturwissenschaft"},
       {"null", "null", "null", "null", "null"}
                                                 }; 		
		System.out.println(tabNoten[0].length);
		for(int i = 0; i < tabNoten[0].length; i++) {
			tabNoten[1][i] = String.valueOf(r.nextInt(6)+1);
		}
		for (int i = 0; i <tabNoten[0].length; i++) {
			System.out.println(tabNoten[1][i]);
		}
	}
}
Welche Frage ich mir halt noch Stelle ist: Kann ich das Vorfüllen mit "null" auch irgendwie umgehen?
Wenn ich die 2. (Index 1) Zeile vom Array nicht befülle, bekomme ich ja eine out of bounds exception.
 
Zuletzt bearbeitet:
bekomme ich ja eine out of bounds exception.

bedeutet das du versuchst auf einen Index zuzugreifen der nicht existiert , nicht das mit null initialisiert ist, dann würderst du eine NPE bekommen

zudem ist
Code:
"null"
kein leerer String
Code:
""
sondern eben
Code:
"null"
😉


[EDIT]Was genau ist dein Ziel ? [/EDIT]

Sowas hier ?

Java:
public class Test {

	public static void main(String[] args) {
		
		String[] subject = {"Mathe","Deutsch","Englisch","Physik"};
		String[] note 	 = {"1","2","3","4"};
		
		String [][] combined = {subject, note};
		
		for (int i = 0; i < combined.length - 1; i++) {
	       for (int j = 0; j < combined.length - 1; j++) {
	        combined[0][j] = subject[i];
	        combined[1][j] = note[i];
        }
	       
        }
		
		for (int i = 0; i < combined.length; i++) {
			for (int j = 0; j < combined[0].length; j++) {
	            System.out.println(combined[i][j]);
            }
        }
     }
}
Ausgabe :

Mathe
Deutsch
Englisch
Physik
1
2
3
4
 
Zuletzt bearbeitet:
Im Endeffekt soll ich 9 Schulfächer mit random Noten befüllen, eine Durchschnittsnote errechnen die 2 Fächer nicht mit berücksichtigt.
Ist einfach ne Übungsaufgabe gewesen und ich konnte mir einfach nicht erklären wie ich mir den index der ersten Zeile anzeigen lassen kann (Ergebnis 9).
Hast mir wirklich sehr geholfen.
Danke.
 

Neue Themen


Zurück
Oben