mehrdimentionale Array

avenger2099

Mitglied
Hi ich möchte in einer Variable namens array , mit Hilfe einer For-Schleife es hinbekommmen
das man dort einen Vor und Nachnamen abspeichert und später ausgiebt.

Code:
import java.io.*;

public class array2
{
  public static void main (String argv[]) throws IOException

  {

    BufferedReader input = new BufferedReader(
                           new InputStreamReader(
                                        System.in));

    String  array[][] = new String[1][2];
    String name,vorname;

    for(int i=0; i<1; i++)
      for(int j=0; j<2; j++)
      {

        System.out.print("VName: ");
        vorname = input.readLine();
        array[i][0] = vorname;
        
        System.out.print("Name: ");
        name = input.readLine();
        array[0][j] = name;

        }
        
        for(int i=0; i<1; i++)
       for(int j=0; j<2; j++)
      {

        System.out.println("Hallo: "+array[i][j]);
        



        }
}
}

könnt ihr mir sagen was daran falsch ist, statt vor und nachnamen, wird nur der letzte vor und Nachname einzelnt ausgeben.....
 
Hi.
Code:
    String  array[][] = new String[1][2];
Du erzeugst hier ein neues Array der Dimension 1x2. Das heißt, du kannst 1*2 = 2 Strings drin speichern - es reicht also für genau einen Vor- und einen Nachnamen.

Code:
    for(int i=0; i<1; i++)
      for(int j=0; j<2; j++)
Du hast hier 2 verkettete Schleifen, in der ersten wird die Variable i von 0 bis 0 laufen,
in der zweiten die Variable j von 0 bis 1.
Code:
      {

        System.out.print("VName: ");
        vorname = input.readLine();
        array[i][0] = vorname;
Wie gesagt ist i = 0, die innere Schleife wird allerdings 2 mal durchlaufen. D.h. du überschreibst beim zweiten mal den ersten Vornamen.
Code:
        System.out.print("Name: ");
        name = input.readLine();
        array[0][j] = name;
Auch hier hast du das Problem. Wenn j = 0 ist, überschreibst du wieder den String in array[0][0].

Java:
String array[][] = new String[3][2]; // 3*2 

for (int i = 0; i < array.length; ++i) {
  System.out.print("VName: ");
  vorname = input.readLine();
  array[i][0] = vorname;
        
  System.out.print("Name: ");
  name = input.readLine();
  array[i][1] = name;
}
Gruß
 
Hallo,

also da sind noch einige Fehler in Deinem Code. Ich hab mich mal dran gemacht, das ganze etwas auszumerzen. Auf eine Eingabe der einzelnen Namen habe ich erstmal verzichtet.

Also als erstes. Du legst Dein Array so an:
Code:
String  array[][] = new String[1][2];
Wenn man das Bildlich darstellt sieht Dein Array so aus:
HTML:
array[Vorname][Nachname]
, das heißt du kannst auch nur einen Datensatz in Dein Arrayschreiben....Ich denke so in der Art solltest Du Dein Array deklarieren:
Code:
String  array[][] = new String[10][2];
, das sähe dann so aus:
HTML:
array[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
	[vorname][nachname]
.

Dann sind Deine For-Schleifen auf einen Durchlauf begrenzt. Ich hab wie oben schon gesagt den Code mal angepasst:
Code:
import java.io.*;

public class MehrdimensionalesArray
{
	public static void main (String argv[]) throws IOException {

		String  array[][] = new String[10][2];
		String name, vorname;

		for(int i=0; i<10; i++) {
			
			vorname = "Vorname" + i;
			array[i][0] = vorname;
        
			name = "Name" + i;
			array[i][1] = name;

		}
        
		for(int i=0; i<10; i++)
		{
			System.out.println("Hallo: " + array[i][0] + " " + array[i][1]);
    	}
	}
}
Meine Ausgabe ist dann diese hier:
PHP:
Hallo: Vorname0 Name0
Hallo: Vorname1 Name1
Hallo: Vorname2 Name2
Hallo: Vorname3 Name3
Hallo: Vorname4 Name4
Hallo: Vorname5 Name5
Hallo: Vorname6 Name6
Hallo: Vorname7 Name7
Hallo: Vorname8 Name8
Hallo: Vorname9 Name9

gruß klaus.
 
Zurück