Array Größe über Kommandozeile eingeben

JoeB

Mitglied
Hallo,

ich habe das Programm Swap Array geschrieben, welches die Zahlen, die man einbijbt umdreht. Allerdings möchte ich die Anzahl der Zahlen und auch die Zahlen selber eingeben können.
Die Anzahl kann ich eingeben, jedoch dann bricht das Programm ab...Warum denn? Ich hoffe, ihr könnt mir helfen.

Danke schon mal!

Java:
import java.io.*;
import java.io.IOException;
public class SwapArray{

		public static void main(String[] args)throws IOException{

        BufferedReader cli = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Geben Sie die Anzahl der Zahlen ein");
		int length = System.in.read();
        int[] zahlen = new int[length];
        
        try{
            for(int i = 0; i < length; i++){
                System.out.print((i+1) + ". Zahl eingeben: ");
                zahlen[i] = Integer.parseInt(cli.readLine());
            }
			 cli.close();

        }catch(IOException e){
            e.printStackTrace();
        }
		
		paint(zahlen);
		System.out.println();
		paint(change(zahlen));
		}
	public static int[] change(int[] change){
	
		//Ergebnis-Array
        int[] resultArray = new int[change.length];
			
			for (int i = 0; i < change.length; i++) {
			resultArray[i] = change[change.length - i - 1];
			}
			return resultArray;
	}
	
	public static void paint(int[]a){
	
		for (int counter = 0; counter < a.length; counter++) {
			System.out.print(" " + a[counter]);
			}
	}


}
 
Was heißt es bricht ab? Was passiert?
Jedenfalls sieht
Code:
int length = System.in.read();
sehr falsch aus, hast du mal in der API Doc nachgelesen was read() macht? (und wo ist der Unterschied zwischen dieser Länge und den Zahlen die du einlesen willst, so dass du hier einen anderen Weg gehst als bei den Zahlen ...)
 

Neue Themen


Zurück
Oben