# Zeichenketten einlesen und dann in Array speichern



## Heike_89 (21. Nov 2013)

Hallo!

Ich soll ein Programm schhreiben, welches die Anzahl der Eingaben einliest und dann entsprechend dieser Anzahl viele Eingaben vom Benutzer in ein Array speichert. Es sollen nur Zeichenketten eingegeben werden. Danach sollen die Zeichenketten in umgekehrter Reihenfolge ausgegeben werden.

Ich weiß nicht so recht wie ich anfangen soll. Ich habe bis jetzt das hier, glaube aber nicht, dass viel Richtiges dabei ist :noe:


```
import java.util.Scanner;

public class Zeichenketten
{
		public static void main(String[] args)
		{
				Scanner input = new Scanner(System.in);
				String a = input.nextLine();
				int i = 0;
				
				while(i == 0)
						{
						if(String a = input.nextLine())
								{
								i++;
								}
						}
				String s[] = new String[a];

				for(int x = s.length-1; x >= 0; x--)
						{
						System.out.println(s[x]);
						}
						
		}				
}
```


----------



## njans (21. Nov 2013)

```
public static void main(String[] args)
	{
		Scanner scanner = new Scanner(System.in);
		System.out.println("Wie viele Eingaben sollen gemacht werden?");
		int anzahl = scanner.nextInt();
		String[] eingaben = new String[anzahl];
		
		for (int i = 0; i < anzahl; i++)
		{
			System.out.println("Naechste Eingabe bitte (" + (i+1) + "/" + anzahl +"):");
			String eingabe = scanner.nextLine();
			eingaben[i] = eingabe;
		}
		
		// Ruewaerts ausgeben:
		// Mittels Schleife
		// starte beim letzten Eintrag und ende beim ersten
		
	}
```


----------



## Heike_89 (22. Nov 2013)

Ok, dankeschön. Soweit habe ich das erstmal verstanden.
Allerdings taucht bei der Ausgabe das Problem auf, dass "Nächste Eingabe bitte" direkt 2x hintereinander ausgegeben wird. Danach funktioniert es. Und zum Schluss kommt eine Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Zeichenketten.main(Zeichenketten.java:16)

Die Rückwärtsausgabe habe ich wiefolgt gelöst:


```
for (int c = eingaben.length-1; c >= 0; c--)
						{
						System.out.println(eingaben[c]);
						}
```

Leider kann ich das jetzt nicht testen, weil eben das Programm nicht richtig ausgeführt wird ???:L


----------



## HarleyDavidson (22. Nov 2013)

Ändere Zeile 11 in:


```
String eingabe = scanner.next();
```

Dann funktioniert es, inklusive deiner Ausgabe rückwärts.
:toll:


----------



## Heike_89 (22. Nov 2013)

Hab ich jetzt gemacht und es ist immer noch genauso?!


----------



## HarleyDavidson (22. Nov 2013)

```
public static void main( String[] args )
    {
        Scanner scanner = new Scanner( System.in );
        System.out.println( "Wie viele Eingaben sollen gemacht werden?" );
        int anzahl = scanner.nextInt();
        String[] eingaben = new String[anzahl];
        for ( int i = 0; i < anzahl; i++ )
        {
            System.out.println( "Naechste Eingabe bitte (" + (i + 1) + "/" + anzahl + "):" );
            String eingabe = scanner.next();
            eingaben[i] = eingabe;
        }
        System.out.println( "----------------" );
        for ( int c = eingaben.length - 1; c >= 0; c-- )
        {
            System.out.println( eingaben[c]);
        }

    }
```

Also bei mir funktioniert es tadellos? ???:L


----------



## Heike_89 (22. Nov 2013)

Aaaahhh... ich hab meinen Fehler gefunden. Ich hatte bei der ersten for-Schleife i <*=*anzahl und dadurch hat es nicht geklappt. :bloed: Aber jetzt läuft es! Ich danke euch!


----------

