Erste Schritte In Array einlesen

dane

Mitglied
Hallo,

ich bin Azubi und habe vor wenigen Wochen begonnen Java zu lernen. Ich habe schon einige Tutorials gemacht und bin jetzt beim Thema Array angekommen.

Folgende Aufgabenstellung: Schreibe ein Programm, das den Benutzer beliebig oft nach einer Eingabe fragt. Diese Eingaben sollen in einem Array gespeichert werden. Gibt der Benutzer "Ende" ein, gibt deas Programm alle Benutzer-Eingaben wieder aus. "Ende" soll nicht gespeichert und nicht mit ausgegeben werden.

Mein fehlerhafter Code, bei dem natürlich auch noch einiges fehlt, weil ich nicht vorankomme:
Java:
import java.util.Scanner;

public class Arrays_3 {

	public static void main(String[] args) 
	
	{
		Scanner scan = new Scanner( System.in );
		
		int zaehler = 0;
		String[] zahlen = new String[zaehler];
		
		
		
		while (true)
		{
			System.out.print("Eingabe: ");
			zahlen[zaehler] = scan.next();
			zaehler = zaehler + 1;
		}
	}
}

Ich komme einfach nicht drauf, wie ich die Benutzereingabe in einem Array der Variable speichern kann. Vielen Dank für die Hilfe.
 
Zuletzt bearbeitet:
B

bygones

Gast
arrays sind starr in ihrer Struktur, du erstellst deinen Array mit der Groesse 0, also kannst du auch keine Eintraege speichern.

Wenn du wirklich mit einem array arbeiten musst, dann musst du einen grossen erstellen und dann immer ueberpruefen, ob du noch eintraege uebrig hast
 

dane

Mitglied
Erstmal danke für die Antwort. :)

Also ja, ich muss die Aufgabe mittels Arrays lösen. Das gehört zum Array-Teil des Tutorials sozusagen. :(
 

age

Mitglied
Du könntest dein Array auch variabel gestalten.
Das ist zwar eigentlich nicht der Sinn eines Arrays, aber möglich ist es.
Schau dir in der API mal die Klasse Arrays & ihre Methode copyOf an ;)
 

ARadauer

Top Contributor
Also ja, ich muss die Aufgabe mittels Arrays lösen.
das den Benutzer beliebig oft nach einer Eingabe fragt

Wer macht eingetlich solche Tutorials... ist das Absicht? Das ist ja etwas was sich grundsätzlich wiederspricht.

Naja man könnte jetzt hergehen, und ein array mit 999 Felder machen (unsauber)
man könnte, wenn das Array voll ist, ein neues doppelt so großes machen und die Werte umkopieren (das würde ich machen)
Man könnte die werte in eine ArrayList einfügen und dann wenn man fertig ist ein Array draus machen. (ob das so vorgeshen war?)
 

Kiri

Bekanntes Mitglied
So würde es gehen

Java:
public class Arrays_3 {
    public static void main(String[] args) {
        Scanner scan = new Scanner( System.in );
        String value = "";
        String[] arr = new String[0];

        while (!value.equalsIgnoreCase("ende"))
        {
            System.out.print("Eingabe: ");
            value = scan.next();
            
            if(!value.equalsIgnoreCase("ende"))
            {
                arr = Arrays.copyOf(arr, arr.length + 1);
                arr[arr.length - 1] = value;
            }
        }
        for(int i = 0; i < arr.length; i++)
        {
            System.out.println(arr[i]);
        }
    }
}
 

dane

Mitglied
@ Kiri, als irgendwie funktioniert das bei mir nicht, wenn ich das in Eclipse einfüge.

Zudem vielen Dank. Für mein Verständnis, könntest du das erklären/kommentieren? :)
 

Kiri

Bekanntes Mitglied
@ Kiri, als irgendwie funktioniert das bei mir nicht, wenn ich das in Eclipse einfüge.

Zudem vielen Dank. Für mein Verständnis, könntest du das erklären/kommentieren? :)

Setze noch die Import-Anweisung drüber, dann sollte es gehen.

Java:
import java.util.*;

Vor heute Abend ist bei mir nichts mehr mit erklären, für mich ist der Dienstag jetzt zuende ;)
 

dane

Mitglied
Java:
import java.util.*;

public class Arrays_3 {
    public static void main(String[] args) {
    	
    	//Wird zum Einlesen der Benutzereingaben benötigt
        Scanner scan = new Scanner( System.in );
        
        //String-Variable 'eingabe' mit leeren Inhalt erstellt
        String eingabe = "";
        
        //String-Variable x erstellt mit 0 Feldern
        String[] x = new String[0];
 
        //Whle-Schleife, die ausgeführt wird, solange man nicht 'ende' eingibt
        while (!eingabe.equalsIgnoreCase("ende"))
        {
        	//Eingabe: ausgeben
            System.out.print("Eingabe: ");
            
            //Eingabe einlesen und in Variable 'eingabe' speichern
            eingabe = scan.next();
            
            //If-Bedingung, solange nicht 'endeÄ eingegeben wurde
            if(!eingabe.equalsIgnoreCase("ende"))
            {
            	//wtf?
                x = Arrays.copyOf(x, x.length + 1);
                x[x.length - 1] = eingabe;
            }
        }
        
        //wtf?
        for(int i = 0; i < x.length; i++)
        {
            System.out.println(x[i]);
        }
    }
}

Ich verstehe bis jetzt lediglich die Textzeilen nicht, welche ich mit 'wtf?' kommentiert habe. Vielleicht könnte man mir die mal erklären.
 

ARadauer

Top Contributor
Sehr gut! Du hast dir zu jeder Zeile selber Gedanken gemacht.

//String-Variable x erstellt mit 0 Feldern
Es ist eher eine String Array Variable


x = Arrays.copyOf(x, x.length + 1);
Arrays (Java Platform SE 6)
CopyOf kopiert ein Array und macht ein neues mit der Länge des zweiten Parameter...
Ich würde aus Performance Gründen aber eher
Java:
x = Arrays.copyOf(x, x.length  * 2);
schreiben, sonst wird immer das ganze array bei jeder neuen Zahl kopiert.

Java:
//wtf?
        for(int i = 0; i < x.length; i++)
Das ist eine normal for schleife... noch nie gesehen?
 

ARadauer

Top Contributor
Alternativ könntest du dir statt dem copyOf auch eine eigenen Methode schreiben...

zb
Java:
public static String[] resizeArray(String[] original) {
        String[] newArray = new String[original.length * 2];
        for (int i = 0; i < original.length; i++) {
            newArray[i] = original[i];
        }
        return newArray;
    }

kommt dir das komisch vor mit dem vergößrern? Macht man auch normalerweise nicht, für sowas mit man listen...
 

Fab1

Top Contributor
Java:
public static String[] resizeArray(String[] original) { // String Array original wird übergeben
        String[] newArray = new String[original.length * 2]; // neues Array wird mit der doppelten Länge vom übergebenen erstellt.

        for (int i = 0; i < original.length; i++) { // Solange die Variable i < als die Länge des Array original ist wird die Schleife ausgeführt (Bedingung)
            newArray[i] = original[i]; //Der Wert mit dem Index i von newArray bekommt den Wert mit Index i von original
        }
        return newArray; // das neue Array wird zurückgegeben
    }

hoffe du verstehst es so :) siehe Kommentare
 

age

Mitglied
Also irgendwie ist das schon ein seltsames "Anfänger-Tutorial".
Ich mein, dieses Tutorial vermittelt dem, der es durcharbeitet, doch genau das falsche?
Arrays haben die Aufgabe, eine Anzahl von Objekten/Werten zu fassen, die vorher bekannt ist.
Klar kann man die Größe eines Arrays im Nachhinein verändern, aber das tun zu müssen ist mit Sicherheit nicht der Regelfall.

Was ist das also für ein Anfänger-Tutorial, das Dir als Einsteiger ein völlig falsches Prinzip vermitteln will?

Die Tutorial-Reihe beschäftigt sich später dann bestimmt noch mit Listen, die nur eine vorher bekannte maximale Anzahl an Einträgen fassen dürfen :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
C (char) Array einlesen Java Basics - Anfänger-Themen 8
P Array einlesen von Konsole Java Basics - Anfänger-Themen 8
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
A Ungeordnetes Array ordnen, Zahl einlesen und einordnen Java Basics - Anfänger-Themen 23
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
K .txt einlesen und in ein Array packen Java Basics - Anfänger-Themen 2
N Best Practice CSV einlesen - Variables Array?! Java Basics - Anfänger-Themen 8
D Array Werte einlesen und ausgeben? Java Basics - Anfänger-Themen 8
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
S Werte in Array einlesen Java Basics - Anfänger-Themen 2
J Integer in Array einlesen Java Basics - Anfänger-Themen 14
C Zeilen in Array einlesen und splitten? Java Basics - Anfänger-Themen 17
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
G Erste Schritte Textdatei einlesen und in Array speichern Java Basics - Anfänger-Themen 5
A Datei in Array einlesen Java Basics - Anfänger-Themen 6
S Zeilenweises Einlesen in Array Java Basics - Anfänger-Themen 2
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
H Zeichenketten einlesen und dann in Array speichern Java Basics - Anfänger-Themen 6
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
J Integer Werte in Array einlesen Java Basics - Anfänger-Themen 6
B zahlenfolge einlesen und in array umwandeln Java Basics - Anfänger-Themen 7
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
T Anfänger hat Probleme mit Array einlesen ;) Java Basics - Anfänger-Themen 13
B Datentypen Werte in einen Array einlesen und danach die beiden höchsten Werte wieder ausgeben Java Basics - Anfänger-Themen 3
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
X Zahlenfolge in Int-Array einlesen? Java Basics - Anfänger-Themen 7
B aus .txt in array einlesen Java Basics - Anfänger-Themen 29
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
S Unbekannte Daten einlesen, speichern und in einem byte Array speichern Java Basics - Anfänger-Themen 3
S CSV Datei in Array einlesen Java Basics - Anfänger-Themen 25
P Zahlen aus Datei in Array einlesen Java Basics - Anfänger-Themen 21
B Strings aus Array einlesen klappt nicht Java Basics - Anfänger-Themen 5
A datei in ein 2dimensionales array einlesen? Java Basics - Anfänger-Themen 9
O String in array einlesen alle x zeichen Java Basics - Anfänger-Themen 15
W String in ein String-Array einlesen ? Java Basics - Anfänger-Themen 2
K Strings in Array einlesen Java Basics - Anfänger-Themen 3
G Datei einlesen und in einem Array ablegen? Java Basics - Anfänger-Themen 5
T Array einlesen und ausgeben Java Basics - Anfänger-Themen 8
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
F Characters in int[] Array einlesen und wieder ausgeben Java Basics - Anfänger-Themen 5
J Text in vorgegebenes Array einlesen Java Basics - Anfänger-Themen 2
Jen Array einlesen, Int und Char Java Basics - Anfänger-Themen 57
J einlesen von datei, float und array und und und. Java Basics - Anfänger-Themen 7
M Datei einlesen & in Array speichern Java Basics - Anfänger-Themen 4
L zahlen in mehrdimensionales array einlesen Java Basics - Anfänger-Themen 3
E Array ueber Tastatur einlesen Java Basics - Anfänger-Themen 2
H Codetabelle Einlesen und in Array speichern Java Basics - Anfänger-Themen 1
I einen text von tastatur in array einlesen und auch ausgeben Java Basics - Anfänger-Themen 1
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
G Inhalt einer Textdatei in ein Array einlesen Java Basics - Anfänger-Themen 2
C Frage zu: String einlesen -> Array von Chars erhalten Java Basics - Anfänger-Themen 4
E Array in funktion einlesen und ausgeben Java Basics - Anfänger-Themen 4
P Eine Datei einlesen und in einem Array speichern Java Basics - Anfänger-Themen 11
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben