Rückwärts über Array mit for-Schleife

Morphinus21

Mitglied
Ich habe folgendes Problem:
Code:
package Aufgabe2;
import java.io.BufferedReader;
import java.io.FileReader;

/**************************************************************************
 * Klasse Test
 * 
 * Die Klasse Test liest den Inhalt der Datei inhalt.txt im aktuellen 
 * Verzeichnis zeilenweise ein und gibt dabei jede Zeile auf dem
 * Bildschirm aus.
 * 
 *  * Erstellt: 04.12.2007
 **************************************************************************/

public class Test 
{
	public static final int MAXZEILEN = 100;
	
    /**************************************************************************
     * Main-Methode der Klasse Test, wird beim Starten automatisch von Java
     * aufgerufen.
     * 
     *      * 
     * Erstellt: 04.12.2007
     **************************************************************************/
	public static void main(String[] args) 
	{
		try
		{
			// Datei zum zeilenweisen Lesen öffnen:
			//-------------------------------------
			
			BufferedReader in = new BufferedReader(new FileReader("D://Übungsaufgaben//inhalt.txt"));
			
			// Stringvariable um jeweils eine Zeile aus der Datei zu speichern:
			//-----------------------------------------------------------------
			
			String str = null;
			
			// Erste Zeile aus der Datei lesen, ergibt null, wenn Dateiende erreicht wurde:
			//-----------------------------------------------------------------------------
			
			str = in.readLine();
			
			// Schleife über alle Zeilen in der Datei:
			//----------------------------------------
			
			// Variable für Anzahl Zeilen in der Datei:
			//-----------------------------------------
			
			int nAnzahl = 0;

			String zeile[] = new String[MAXZEILEN];
			
			while(str != null)
			{
				if (nAnzahl >= MAXZEILEN)
				{
					System.out.println("Datei hat mehr als " + MAXZEILEN + " Zeilen!");
					System.exit(1);
				}
				
				zeile[nAnzahl] = str;
				
				++nAnzahl;

				// Nächste Zeile aus der Datei lesen:
				//-----------------------------------
				
				str = in.readLine();
			}
			//Falls i kleiner ist als nAnzahl, erhöhe i um 1:
			for (int i=0 ; i<nAnzahl; i++)
			{
				System.out.println(zeile[i]);
			}
			
		}
		
		catch (Exception exc)
		{
			// Fehlerbehandlung:
			// Es ist irgendein Fehler aufgetreten, z.B. Datei nicht vorhanden, oder Lesefehler:
			//----------------------------------------------------------------------------------
			
			System.out.println("Fehler aufgetreten: " + exc);
			
			// Programm mit Rückgabecode 1 (Fehler aufgetreten) beenden:
			//----------------------------------------------------------
			
			System.exit(1);
		}
		
		// Programm mit Rückgabecode 0 (Alles in Ordnung) beenden:
		//--------------------------------------------------------
		
		System.exit(0);
	}
}

jetzt soll die for-Schleife aber andersrum über das array laufen...Also sozusagen, das zuerst das ende der textdatei ausgegeben wird und dann der Anfang..Wie muss die for-Schleife dann aussehn?
 
Dann mach die forschleife doch Rueckwaerts ^^ Anstatt bei 0 anzufangen, faengst du beim ende an, und anstatt hochzuzaehlen, zaehlst du runter.
 
So funktioniert das aber net Matze ^^
So faengt der bei i = Anzahl zeilen an und hoer direkt wieder auf
 
Code:
for (int i=nAnzahl ; i>=nAnzahl; i--)
			{
				System.out.println(zeile[i]);
			}

So nun haut er mir "null" raus...? Was ist da schon wieder falsch?
 
Wie gesagt, so geht das net,
deine Bedingung ist Falsch, er macht solange bis i>= die Anzahl der Zeilen, aber er soll doch solange machen bis er am Anfang vom Array angekommen ist, also bis i >=0
 
@Matze
Wenn du
Java:
for (int i=nAnzahl ; i<=nAnzahl; i--)
machst, hoert er nie auf, weil du doch bei der Anzahl der Zeilen anfaengst, und runterzaehlst, also ist i IMMER <= Anzahl Zeilen

Aus dem Grund mag ich net wenn man den Code vorgibt, so ueberlegt derjenige der gefragt hat net ma, und uebernimmt es einfach.
 
hier mal eine andere Version

Java:
for(int i=0;i<array.length();i++){
    System.out.println(array[array.length()-1-i]);
}

Man muss von der Länge des Arrays 1 abziehen um den jeweiligen Index zu erhalten.
 
Zuletzt bearbeitet:
Zurück