String Array Eingabe

Diskutiere String Array Eingabe im Allgemeine Java-Themen Bereich.
N

Nico26

Ich bin gerade dabei dieses Programm zu schreiben. Hab nur das Problem das ich wenn ich bei case 1 eingebe dass ich 4 Wörter eingeben möchte nur 3 eingeben kann. nach demm dritten springt dass i auf 3 und fertig, ich kann nichts eingeben und ich gelande zum Menü zurück. Wisst ihr wieso?

package com.company;

public class Main {

public static void main(String[] args) {
var scan = new java.util.Scanner(System.in);
int eingabe = 0;
String[] text = {};
boolean pruef;

do {
System.out.println("1.)Text eingeben");
System.out.println("2.)Text ausgeben");
System.out.println("3.)Text Sortieren");
System.out.println("4.)File lesen");
System.out.println("5.) File schreiben");
System.out.println("0.) Programm beenden");
eingabe = scan.nextInt();
int zahl = 1;

switch (eingabe) {
case 1:
//Eingabe des Strings
System.out.println("Wie viele Wörter wollen sie eingeben?");
int anz = scan.nextInt();
text = new String[anz];
System.out.println("_______________________Eingabe des Strings_______________________");
System.out.println("Bitte Text eingeben");
for (int i = 0; i <= anz - 1; i++) {
text = scan.nextLine();
System.out.println(i);
}
System.out.println("________________________Ende der Eingabe_________________________");
break;

case 2:
//Ausgabe des Strings
System.out.println("_____________________________Ausgabe_____________________________");
if (text.length == 0) {
System.out.println("Sie müssen erst Zahlen einlesen");
} else {
for (int i = 0; i <= text.length - 1; i++) {
System.out.println(zahl + ": " + text);
zahl++;
}
}
System.out.println("__________________________Ausgabe Ende!__________________________");
break;

case 3:

break;

case 4:
break;

case 5:
break;

case 0:
break;
}

} while (eingabe != 0);
}
}
 
Zuletzt bearbeitet:
krgewb

krgewb

Bitte immer in code-Tags posten.
Java:
package com.company;

public class Main {

    public static void main(String[] args) {
        var scan = new java.util.Scanner(System.in);
        int eingabe = 0;
        String[] text = {};
        boolean pruef;

        do {
            System.out.println("1.) Text eingeben");
            System.out.println("2.) Text ausgeben");
            System.out.println("3.) Text Sortieren");
            System.out.println("4.) File lesen");
            System.out.println("5.) File schreiben");
            System.out.println("0.) Programm beenden");
            eingabe = scan.nextInt();
            int zahl = 1;
  
            switch (eingabe) {
                case 1:
                    //Eingabe des Strings
                    System.out.println("Wie viele Wörter wollen sie eingeben?");
                    int anz = scan.nextInt();
                    text = new String[anz];
                    System.out.println("_______________________Eingabe des Strings_______________________");
                    System.out.println("Bitte Text eingeben");
                    for (int i = 0; i <= anz - 1; i++) {
                        text[i] = scan.nextLine();
                        System.out.println(i);
                    }
                    System.out.println("________________________Ende der Eingabe_________________________");
                    break;
                case 2:
                    //Ausgabe des Strings
                    System.out.println("_____________________________Ausgabe_____________________________");
                    if (text.length == 0) {
                        System.out.println("Sie müssen erst Zahlen einlesen");
                    } else {
                        for (int i = 0; i <= text.length - 1; i++) {
                            System.out.println(zahl + ": " + text[i]);
                            zahl++;
                        }
                    }
                    System.out.println("__________________________Ausgabe Ende!__________________________");
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 0:
                    break;
            }

        } while (eingabe != 0);
    }
}
 
Zuletzt bearbeitet:
N

Nico26

Bitte immer in code-Tags posten.
Java:
package com.company;

public class Main {

    public static void main(String[] args) {
        var scan = new java.util.Scanner(System.in);
        int eingabe = 0;
        String[] text = {};
        boolean pruef;

        do {
            System.out.println("1.) Text eingeben");
            System.out.println("2.) Text ausgeben");
            System.out.println("3.) Text Sortieren");
            System.out.println("4.) File lesen");
            System.out.println("5.) File schreiben");
            System.out.println("0.) Programm beenden");
            eingabe = scan.nextInt();
            int zahl = 1;
 
            switch (eingabe) {
                case 1:
                    //Eingabe des Strings
                    System.out.println("Wie viele Wörter wollen sie eingeben?");
                    int anz = scan.nextInt();
                    text = new String[anz];
                    System.out.println("_______________________Eingabe des Strings_______________________");
                    System.out.println("Bitte Text eingeben");
                    for (int i = 0; i <= anz - 1; i++) {
                        text[i] = scan.nextLine();
                        System.out.println(i);
                    }
                    System.out.println("________________________Ende der Eingabe_________________________");
                    break;
                case 2:
                    //Ausgabe des Strings
                    System.out.println("_____________________________Ausgabe_____________________________");
                    if (text.length == 0) {
                        System.out.println("Sie müssen erst Zahlen einlesen");
                    } else {
                        for (int i = 0; i <= text.length - 1; i++) {
                            System.out.println(zahl + ": " + text[i]);
                            zahl++;
                        }
                    }
                    System.out.println("__________________________Ausgabe Ende!__________________________");
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 0:
                    break;
            }

        } while (eingabe != 0);
    }
}
Bitte immer in code-Tags posten.
Java:
package com.company;

public class Main {

    public static void main(String[] args) {
        var scan = new java.util.Scanner(System.in);
        int eingabe = 0;
        String[] text = {};
        boolean pruef;

        do {
            System.out.println("1.) Text eingeben");
            System.out.println("2.) Text ausgeben");
            System.out.println("3.) Text Sortieren");
            System.out.println("4.) File lesen");
            System.out.println("5.) File schreiben");
            System.out.println("0.) Programm beenden");
            eingabe = scan.nextInt();
            int zahl = 1;
 
            switch (eingabe) {
                case 1:
                    //Eingabe des Strings
                    System.out.println("Wie viele Wörter wollen sie eingeben?");
                    int anz = scan.nextInt();
                    text = new String[anz];
                    System.out.println("_______________________Eingabe des Strings_______________________");
                    System.out.println("Bitte Text eingeben");
                    for (int i = 0; i <= anz - 1; i++) {
                        text[i] = scan.nextLine();
                        System.out.println(i);
                    }
                    System.out.println("________________________Ende der Eingabe_________________________");
                    break;
                case 2:
                    //Ausgabe des Strings
                    System.out.println("_____________________________Ausgabe_____________________________");
                    if (text.length == 0) {
                        System.out.println("Sie müssen erst Zahlen einlesen");
                    } else {
                        for (int i = 0; i <= text.length - 1; i++) {
                            System.out.println(zahl + ": " + text[i]);
                            zahl++;
                        }
                    }
                    System.out.println("__________________________Ausgabe Ende!__________________________");
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 0:
                    break;
            }

        } while (eingabe != 0);
    }
}
Ok Danke
 
mihe7

mihe7

Scanner#nextInt entfernt das Zeilenende nicht, so dass das unmittelbar folgende nextLine() eine leere Zeile einliest.
 
A

advanced_java

Na ja, "stichhaltig"... Es besteht beim Lesen von Zahlen immer die Möglichkeit/Gefahr, das "Flushen" des Streams vor dem erneuten Lesen einer Zeile zu versäumen... Zudem könnte das "der Lesbarkeit dienlich" nicht sein. :(
 
Thema: 

String Array Eingabe

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben